项目

Google云BLOB存储提供程序

Google云BLOB存储提供程序可将BLOB对象存储于Google云存储服务中。

请先阅读 BLOB存储文档 理解BLOB存储系统的使用方法。本文档仅说明如何配置容器以使用Google云存储作为存储提供程序。

安装指南

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

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

如需手动安装,请将Volo.Abp.BlobStoring.Google NuGet包添加到项目,并在ABP模块类中加入[DependsOn(typeof(AbpBlobStoringGoogleModule))]依赖声明(参见模块化开发基础)。

配置说明

配置操作在模块类的ConfigureServices方法中完成(参见模块化开发基础),具体配置方式请参考 BLOB存储文档

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

Configure<AbpBlobStoringOptions>(options =>
{
    options.Containers.ConfigureDefault(container =>
    {
        container.UseGoogle(google =>
        {
            google.ClientEmail = "您的Google客户端邮箱";
            google.ProjectId = "您的Google项目ID";
            google.PrivateKey = "您的Google私钥";
            google.Scopes = "您的Google访问范围";
            google.ContainerName = "您的Google容器名称";
            google.CreateContainerIfNotExists = true;
            //google.UseApplicationDefaultCredentials = true; // 如需使用应用默认凭证请启用此选项
        });
    });
});

关于为特定容器配置此提供程序的详细说明,请参阅 BLOB存储文档

配置选项

  • ClientEmail (字符串):Google服务账号的客户端邮箱。可通过创建服务账号获取,参考Google官方文档:https://cloud.google.com/iam/docs/service-account-overview
  • ProjectId (字符串):Google服务账号所属的项目ID
  • PrivateKey (字符串):Google服务账号的私钥。可通过创建服务账号获取,参考Google官方文档:https://cloud.google.com/iam/docs/keys-create-delete
  • Scopes (字符串):Google服务账号的访问范围
  • UseApplicationDefaultCredentials (布尔值):设为true时使用应用默认凭证(ADC),默认值为false。参考Google官方文档:https://cloud.google.com/docs/authentication/provide-credentials-adc
  • ContainerName (字符串):可指定Google云中的容器名称。未设置时默认使用BlobContainerName特性定义的BLOB容器名称(参见 BLOB存储文档)。请注意Google对容器命名有特定命名规则,容器名称必须是有效的DNS名称,符合以下命名规范
    • 容器名必须以字母或数字开头/结尾,仅可包含字母、数字及连字符(-)
    • 每个连字符(-)前后必须紧接字母或数字,容器名中不允许连续出现连字符
    • 容器名中的所有字母必须为小写
    • 容器名称长度需在363个字符之间
  • CreateContainerIfNotExists (布尔值):默认值为false。当Google云中不存在指定容器时,GoogleBlobProvider将尝试创建该容器

Google Blob名称计算器

Google Blob提供程序通过特定规则组织Blob名称。默认情况下,Blob的完整名称按以下规则生成:

  • 当前租户null 时(或已为容器禁用多租户功能——参见 BLOB存储文档 了解如何禁用),添加 host 前缀
  • 当当前租户不为 null 时,添加 tenants/<租户ID> 前缀
  • 最后追加实际的Blob名称

其他服务

  • GoogleBlobProvider是实现Google云BLOB存储的核心服务,可通过依赖注入进行覆盖/替换(注意不要替换IBlobProvider接口,而应替换GoogleBlobProvider类)
  • IGoogleBlobNameCalculator用于计算Blob完整名称(如上所述),默认由DefaultGoogleBlobNameCalculator实现
在本文档中