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 本身要么从文档库中删除,要么文件不受更改影响。所以我的问题是:这个问题有解决方案吗?还有其他想法可以帮助我完成这个任务吗?

提前致谢!

正如你问的其他想法

  1. 我想到的一件事是一个业务驱动器而不是网络存储
  2. 另一种是开发自定义文件上传,将文件直接上传到网络存储,上传后,在 SharePoint 列表中添加一个条目。