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名称,符合以下命名规范:- 容器名必须以字母或数字开头/结尾,仅可包含字母、数字及连字符(-)
- 每个连字符(-)前后必须紧接字母或数字,容器名中不允许连续出现连字符
- 容器名中的所有字母必须为小写
- 容器名称长度需在3至63个字符之间
- 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实现
抠丁客


