我在这里遇到了一些麻烦。以下是上下文:
我们的一位客户要求我们开发一种替代解决方案,将文档库的文档存储在内容数据库中,因为他们的内容数据库增长得太快了。他们为我们提供了网络存储,以便文档可以存储在文件系统中。谷歌搜索后,我发现了一个名为远程Blob存储 RBS RBS的功能,但正如参考文献所述,这是一个每个内容数据库功能,这是上下文无法接受的。我提出的另一个选择是使用 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本身要么从文档库中删除,要么文件不会受到更改的影响。所以我的问题是:这个问题有解决方案吗?还有其他想法可以帮助我完成这个任务吗?
提前致谢!
答案 0 :(得分:1)
正如你提出其他想法一样