项目

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兼容性的事实标准,其存储桶命名需遵循以下规则
    • 存储桶名称长度需在363个字符之间
    • 仅可包含小写字母、数字、点号(.)和连字符(-)
    • 必须以字母或数字开头和结尾
    • 不得采用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实现
在本文档中