项目

Azure Blob存储提供程序

Azure Blob存储提供程序可将BLOB对象存储在Azure Blob存储中。

请先阅读 BLOB存储文档了解BLOB存储系统的使用方法。本文档仅介绍如何配置容器以使用Azure Blob作为存储提供程序。

安装

使用ABP CLI将Volo.Abp.BlobStoring.Azure NuGet包添加到您的项目:

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

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

配置

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

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

Configure<AbpBlobStoringOptions>(options =>
{
    options.Containers.ConfigureDefault(container =>
    {
        container.UseAzure(azure =>
        {
            azure.ConnectionString = "您的Azure连接字符串";
            azure.ContainerName = "您的Azure容器名称";
            azure.CreateContainerIfNotExists = true;
        });
    });
});

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

配置选项

  • ConnectionString (字符串):连接字符串包含应用程序在运行时使用共享密钥授权访问Azure存储账户数据所需的认证信息。请参考Azure文档:https://docs.microsoft.com/zh-cn/azure/storage/common/storage-configure-connection-string
  • ContainerName (字符串):可指定Azure中的容器名称。若未指定,将使用通过BlobContainerName特性定义的BLOB容器名称(参见 BLOB存储文档)。请注意Azure对容器命名有特定规则。容器名称必须是有效的DNS名称,符合以下命名规则
    • 容器名称必须以字母或数字开头和结尾,且只能包含字母、数字和短横线(-)
    • 每个短横线(-)必须紧邻字母或数字,容器名称中不允许连续使用短横线
    • 容器名称中的所有字母必须为小写
    • 容器名称长度必须在363个字符之间
  • CreateContainerIfNotExists (布尔值):默认值为false。如果Azure中不存在指定容器,AzureBlobProvider将尝试创建该容器

Azure Blob名称计算器

Azure Blob提供程序会组织BLOB名称并实现某些约定。默认情况下,BLOB的完整名称按以下规则确定:

  • 当前租户null(或容器已禁用多租户功能——参见 BLOB存储文档 了解如何为容器禁用多租户),则添加host字符串
  • 若当前租户不为null,则添加tenants/<租户ID>字符串
  • 添加BLOB名称

其他服务

  • AzureBlobProvider是实现Azure BLOB存储提供程序的主服务。如需通过依赖注入覆盖/替换该服务(不要替换IBlobProvider接口,而是替换AzureBlobProvider类)
  • IAzureBlobNameCalculator用于计算完整BLOB名称(如上所述)。默认由DefaultAzureBlobNameCalculator实现
在本文档中