项目

文件系统BLOB存储提供程序

文件系统存储提供程序用于将BLOB以标准文件形式存储在本地文件系统的文件夹中。

请先阅读 BLOB存储文档 了解如何使用BLOB存储系统。本文档仅介绍如何配置容器以使用文件系统。

安装

使用ABP CLI将Volo.Abp.BlobStoring.FileSystem NuGet包添加到项目中:

  • 如果尚未安装,请先安装 ABP CLI
  • 在需要添加Volo.Abp.BlobStoring.FileSystem包的.csproj文件所在目录打开命令行(终端)
  • 运行abp add-package Volo.Abp.BlobStoring.FileSystem命令

如需手动安装,请将Volo.Abp.BlobStoring.FileSystem NuGet包安装到项目中,并在项目的ABP模块类中添加[DependsOn(typeof(AbpBlobStoringFileSystemModule))]

配置

配置在模块类的ConfigureServices方法中完成,具体说明请参考 BLOB存储文档

示例:配置默认使用文件系统存储提供程序

Configure<AbpBlobStoringOptions>(options =>
{
    options.Containers.ConfigureDefault(container =>
    {
        container.UseFileSystem(fileSystem =>
        {
            fileSystem.BasePath = "C:\\my-files";
        });
    });
});

UseFileSystem扩展方法用于为容器设置文件系统提供程序并配置文件系统选项。

关于如何为特定容器配置此提供程序,请参阅 BLOB存储文档

配置选项

  • BasePath (字符串): 存储BLOB的基础文件夹路径。必须设置此选项
  • AppendContainerNameToBasePath (布尔值; 默认: true): 是否在基础文件夹内创建以容器名称命名的子文件夹。如果在同一BaseFolder中存储多个容器,请保持此值为true。如果不需要额外的文件夹层级,可设置为false

文件路径计算规则

文件系统提供程序通过文件夹组织BLOB文件并遵循特定约定。默认情况下,BLOB文件的完整路径按以下规则确定:

  • 以配置的 BasePath 作为起始路径
  • 如果 当前租户null(或容器禁用了多租户功能),则添加 host 文件夹
  • 如果当前租户不为null,则添加tenants/<租户ID>文件夹
  • 如果AppendContainerNameToBasePathtrue,则添加容器名称。如果容器名称包含/,将创建嵌套文件夹
  • 添加BLOB名称。如果BLOB名称包含/将创建文件夹,包含.将生成文件扩展名

扩展文件系统BLOB提供程序

  • FileSystemBlobProvider是实现文件系统存储的主服务。您可以继承此类并重写方法来自定义功能

  • IBlobFilePathCalculator服务用于计算文件路径。默认实现为DefaultBlobFilePathCalculator。如需自定义文件路径计算,可以替换/重写此服务

在本文档中