BLOB Storing Minio 提供程序
BLOB Storing Minio提供程序帮助你存储对象到 MinIO Object storage,
阅读BLOB存储文档了解如何使用BLOB存储系统, 本文档仅介绍如何为容器配置Minio提供程序,
安装
使用 ABP CLI 来安装 Volo.Abp.BlobStoring.Minio NuGet 包到你的项目:
- 如果你没有安装ABP CLI,请先安装 ABP CLI,
- 在要添加
Volo.Abp.BlobStoring.Minio
包的.csproj
文件目录打开命令行, - 执行
abp add-package Volo.Abp.BlobStoring.Minio
命令,
如果你要手动安装, 通过NuGet安装 Volo.Abp.BlobStoring.Minio 到你的项目,然后添加 [DependsOn(typeof(AbpBlobStoringMinioModule))]
特性到你的 ABP module 类上,
配置
配置在你的module类中的ConfigureServices
方法中完成,
例: 配置使用Minio存储
Configure<AbpBlobStoringOptions>(options =>
{
options.Containers.ConfigureDefault(container =>
{
container.UseMinio(minio =>
{
minio.EndPoint = "你的 minio endPoint";
minio.AccessKey = "你的 minio accessKey";
minio.SecretKey = "你的 minio secretKey";
minio.BucketName = "你的 minio bucketName";
});
});
});
参阅BLOB存储文档 学习如何为指定容器配置提供程序,
选项
- EndPoint (string): 你的Minio对象存储服务的URL, 查看文档:https://docs.min.io/docs/dotnet-client-quickstart-guide.html
- AccessKey (string): Access key是唯一标识你的账户的用户ID,
- SecretKey (string): Access key是唯一标识你的账户的用户ID
- BucketName (string):你可以指定bucket名称,如果没有指定,将使用
BlobContainerName
属性定义的BLOB容器的名称(查阅BLOB storing document),MinIO完全兼容S3标准,所以有一些 bucket命名规则,必须符合规则:- Bucket名称必须介于 3 到 63 个字符之间.
- Bucket名称只能由小写字母、数字、句点 (.) 和连字符 (-) 组成.
- Bucket名称必须以字母或数字开头和结尾.
- Bucket名称不能是ip (例如, 192.168.5.4).
- Bucket名称不能以 xn— 开头, (对于2020年2月以后创建的 Bucket).
- Bucket名称在分区中必须唯一 .
- Bucket 与 Amazon S3 Transfer Acceleration 一起使用时名称中不能有句点 (.).
- WithSSL (bool): 默认
false
,代表使用HTTPS, - CreateContainerIfNotExists (bool): 默认
false
,如果不存在bucket,MinioBlobProvider
将会创建一个,
Minio BLOB 名称计算器
默认情况下BLOB的全名由以下规则确定:
- 如果当前租户为
null
(或容器禁用多租户 - 请参阅BLOB存储文档 了解如何禁用容器的多租户),则追加host
字符串, - 如果当前租户不为
null
,则追加tenants/<tenant-id>
字符串, - 追加 BLOB 名称,
其他服务
MinioBlobProvider
是实现Minio BLOB存储提供程序的主要服务,如果你想要通过依赖注入覆盖/替换它(不要替换IBlobProvider
接口,而是替换MinioBlobProvider
类).IMinioBlobNameCalculator
服务用于计算文件路径. 默认实现是DefaultMinioBlobNameCalculator
. 如果你想自定义文件路径计算,可以替换/覆盖它.