Sharepoint 文档库在文件系统上存储文件
Sharepoint document library storing files on filesystem
我在这里有点麻烦。这是上下文:
我们的一位客户要求我们开发一种替代解决方案,以将文档库的文档存储在内容数据库中,因为他们的内容数据库增长太快。他们为我们提供了一个网络存储,这样文档就可以存储在文件系统中。在谷歌搜索了一下之后,我发现了一个名为 Remote Blob Storage RBS RBS 的功能,但正如参考资料所说,这是一个 per content database 上下文不可接受的特征。我想出的另一个选择是使用 SPItemEventReceiver 以便在 ItemAdded 事件中我可以保存 SPFile 与 SPItemEventProperties 属性 的 ListItem 关联到文件系统,并可能删除或截断 SPFile 对象
public static void DeleteAssociatedFile(SPWeb web, SPListItem item)
{
try
{
if (item == null) { throw new ArgumentNullException("item"); }
if (item.FileSystemObjectType == SPFileSystemObjectType.File)
{
web.AllowUnsafeUpdates = true;
using (var fileStream = item.File.OpenBinaryStream())
{
if (fileStream.CanWrite)
{
fileStream.SetLength(0);
}
}
item.File.Update();
}
}
catch (Exception ex)
{
// log error message
Logger.Unexpected("ListItemHelper.DeleteAssociatedFile", ex.Message);
throw;
}
finally
{
web.AllowUnsafeUpdates = false;
}
}
强制它不将其内容存储到内容数据库中。但没有成功。每次我以某种方式设法删除或截断与 ListItem 关联的 SPFile 时,ListItem 本身要么从文档库中删除,要么文件不受更改影响。所以我的问题是:这个问题有解决方案吗?还有其他想法可以帮助我完成这个任务吗?
提前致谢!
正如你问的其他想法
- 我想到的一件事是一个业务驱动器而不是网络存储
- 另一种是开发自定义文件上传,将文件直接上传到网络存储,上传后,在 SharePoint 列表中添加一个条目。
我在这里有点麻烦。这是上下文:
我们的一位客户要求我们开发一种替代解决方案,以将文档库的文档存储在内容数据库中,因为他们的内容数据库增长太快。他们为我们提供了一个网络存储,这样文档就可以存储在文件系统中。在谷歌搜索了一下之后,我发现了一个名为 Remote Blob Storage RBS RBS 的功能,但正如参考资料所说,这是一个 per content database 上下文不可接受的特征。我想出的另一个选择是使用 SPItemEventReceiver 以便在 ItemAdded 事件中我可以保存 SPFile 与 SPItemEventProperties 属性 的 ListItem 关联到文件系统,并可能删除或截断 SPFile 对象
public static void DeleteAssociatedFile(SPWeb web, SPListItem item)
{
try
{
if (item == null) { throw new ArgumentNullException("item"); }
if (item.FileSystemObjectType == SPFileSystemObjectType.File)
{
web.AllowUnsafeUpdates = true;
using (var fileStream = item.File.OpenBinaryStream())
{
if (fileStream.CanWrite)
{
fileStream.SetLength(0);
}
}
item.File.Update();
}
}
catch (Exception ex)
{
// log error message
Logger.Unexpected("ListItemHelper.DeleteAssociatedFile", ex.Message);
throw;
}
finally
{
web.AllowUnsafeUpdates = false;
}
}
强制它不将其内容存储到内容数据库中。但没有成功。每次我以某种方式设法删除或截断与 ListItem 关联的 SPFile 时,ListItem 本身要么从文档库中删除,要么文件不受更改影响。所以我的问题是:这个问题有解决方案吗?还有其他想法可以帮助我完成这个任务吗?
提前致谢!
正如你问的其他想法
- 我想到的一件事是一个业务驱动器而不是网络存储
- 另一种是开发自定义文件上传,将文件直接上传到网络存储,上传后,在 SharePoint 列表中添加一个条目。