BLOB Storing Azure提供程序

BLOB存储Azure提供程序可以将BLOB存储在Azure Blob storage中.

阅读BLOB存储文档了解如何使用BLOB存储系统. 本文档仅介绍如何为容器配置Azure提供程序.

安装

使用ABP CLI添加Volo.Abp.BlobStoring.AzureNuGet包到你的项目:

  • 安装 ABP CLI, 如果你还没有安装.
  • 在要添加 Volo.Abp.BlobStoring.Azure 包的 .csproj 文件目录打开命令行.
  • 运行 Volo.Abp.BlobStoring.Azure 命令.

如果要手动安装,在你的项目中安装 Volo.Abp.BlobStoring.Azure NuGet包然后将[DependsOn(typeof(AbpBlobStoringAzureModule))]添加到项目内的ABP模块类中.

配置

如同BLOB存储文档所述,配置是在模块类的 ConfigureServices 方法完成的.

示例: 配置为默认使用Azure存储提供程序

  1. Configure<AbpBlobStoringOptions>(options =>
  2. {
  3. options.Containers.ConfigureDefault(container =>
  4. {
  5. container.UseAzure(azure =>
  6. {
  7. azure.ConnectionString = "your azure connection string";
  8. azure.ContainerName = "your azure container name";
  9. azure.CreateContainerIfNotExists = false;
  10. });
  11. });
  12. });

参阅BLOB存储文档 学习如何为指定容器配置提供程序.

选项

  • ConnectionString (string): 连接字符串包括应用程序在运行时使用共享密钥授权访问Azure存储帐户中的数据所需的授权信息. 请参考Azure文档.
  • ContainerName (string): 你可以在azure中指定容器名称. 如果没有指定它将使用 BlogContainerName 属性定义的BLOB容器的名称(请参阅BLOB存储文档). 请注意Azure有一些命名容器的规则,容器名称必须是有效的DNS名称,符合以下命名规则:
    • 容器名称必须以字母或数字开头或结尾,并且只能包含字母,数字和破折号(-)字符.
    • 每个破折号(-)必须紧跟在字母或数字之后;容器名称中不允许使用连续的破折号.
    • 容器名称中的所有字母都必须小写.
    • 容器名称的长度必须在363个字符之间.
  • CreateContainerIfNotExists (bool): 默认值为 false, 如果azure中不存在容器, AzureBlobProvider 将尝试创建它.

Azure BLOB 名称计算器

Azure BLOB提供程序组织BLOB名称并实现一些约定. 默认情况下BLOB的全名由以下规则确定:

  • 如果当前租户为 null(或容器禁用多租户 - 请参阅BLOB存储文档 了解如何禁用容器的多租户),则追加 host 字符串.
  • 如果当前租户不为 null,则追加 tenants/<tenant-id> 字符串.
  • 追加 BLOB 名称.

其他服务

  • AzureBlobProvider 是实现Azure BLOB存储提供程序的主要服务,如果你想要通过依赖注入覆盖/替换它(不要替换 IBlobProvider 接口,而是替换 AzureBlobProvider 类).
  • IAzureBlobNameCalculator 服务用于计算文件路径. 默认实现是 DefaultAzureBlobNameCalculator . 如果你想自定义文件路径计算,可以替换/覆盖它.