我们的应用程序将用户文件存储在物理驱动器上(很多都是这样)。文件被组织并分组到文件夹中(每个用户一个文件夹)。应用程序还通过在其中创建子文件夹并将文件分组到这些子文件夹来操作文件夹。每个文件的物理位置存储在SQL Server数据库中。 因此,您可以判断应用程序是否与物理文件系统紧密耦合。我们希望将文件管理操作迁移到SQL Server FILESTREAM。但是,据我所知,FILESTREAM不允许创建由文件夹和文件夹组组成的文件层次结构。 FILESTREAM也不允许我重命名文件。 FILESTREAM是真的吗?有没有其他选择使用FILESTREAM来管理物理文件而不必大幅改变我的应用程序逻辑?
答案 0 :(得分:0)
有关文件流功能的基本概述,请参阅here。
使用Filestream时,让Sql Server引擎控制NTFS文件的放置和命名。物理路径由引擎抽象,因此客户端无法直接操作/重命名它们。
我们的想法是,如果您的方案将blob组织到层次结构中,则需要在关系级别实现该层次结构。
由于打开文件流数据需要通过特殊API(并涉及Sql Server引擎),因此必须更改现有客户端代码以使用此API,而不是直接打开NTFS文件。