MinIO BLOB存储提供程序
MinIO BLOB存储提供程序支持将BLOB对象存储于MinIO对象存储服务中。
请先阅读 BLOB存储文档 了解BLOB存储系统的使用方法。本文档仅重点说明如何配置容器以使用MinIO作为存储提供程序。
安装部署
使用ABP CLI将Volo.Abp.BlobStoring.Minio NuGet包添加到项目:
- 若未安装请先安装ABP CLI
- 在需要添加包的项目
.csproj文件所在目录打开命令行终端 - 执行
abp add-package Volo.Abp.BlobStoring.Minio命令
如需手动安装,请为项目添加Volo.Abp.BlobStoring.Minio NuGet包,并在项目的ABP模块类中添加[DependsOn(typeof(AbpBlobStoringMinioModule))]依赖配置。
配置说明
配置操作需在模块类的ConfigureServices方法中完成,具体规范请参考 BLOB 存储文档。
示例:配置默认使用MinIO存储提供程序
Configure<AbpBlobStoringOptions>(options =>
{
options.Containers.ConfigureDefault(container =>
{
container.UseMinio(minio =>
{
minio.EndPoint = "您的MinIO终端节点";
minio.AccessKey = "您的MinIO访问密钥";
minio.SecretKey = "您的MinIO安全密钥";
minio.BucketName = "您的MinIO存储桶名称";
});
});
});
关于为特定容器配置此提供程序的详细说明,请参阅BLOB存储文档
配置选项
- EndPoint (字符串):对象存储服务地址。请参考MinIO .NET客户端开发指南:https://docs.min.io/docs/dotnet-client-quickstart-guide.html
- AccessKey (字符串):用于唯一标识账户的访问密钥
- SecretKey (字符串):用于账户验证的安全密钥
- BucketName (字符串):可指定MinIO中的存储桶名称。若未指定,将使用通过
BlobContainerName特性定义的BLOB容器名称(参见 BLOB 存储文档)。由于MinIO是S3兼容性的事实标准,其存储桶命名需遵循以下规则:- 存储桶名称长度需在3至63个字符之间
- 仅可包含小写字母、数字、点号(.)和连字符(-)
- 必须以字母或数字开头和结尾
- 不得采用IP地址格式(如192.168.5.4)
- 2020年2月后创建的存储桶不得以xn--开头
- 在分区内必须保持名称唯一性
- 用于Amazon S3传输加速的存储桶名称不得包含点号(.),详见Amazon S3传输加速说明
- WithSSL (布尔值):默认值为
false,设置为true时MinIO客户端将使用HTTPS协议替代HTTP - CreateContainerIfNotExists (布尔值):默认值为
false,当MinIO中不存在指定存储桶时,MinioBlobProvider将尝试创建该存储桶
MinIO BLOB命名计算器
MinIO BLOB提供程序通过特定规则组织BLOB名称。默认情况下,BLOB完整名称由以下规则确定:
- 当当前租户 为
null时(或已为容器禁用多租户功能——参见 BLOB 存储文档 了解禁用方法),添加host字符串 - 当当前租户非
null时,添加tenants/<租户ID>字符串 - 附加BLOB名称本身
相关服务
MinioBlobProvider是实现MinIO BLOB存储的核心服务,可通过依赖注入进行重写/替换(注意不要替换IBlobProvider接口,而是替换MinioBlobProvider类)IMinioBlobNameCalculator用于计算BLOB完整名称(规则如上所述),默认由DefaultMinioBlobNameCalculator实现
抠丁客


