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存储

  1. Configure<AbpBlobStoringOptions>(options =>
  2. {
  3. options.Containers.ConfigureDefault(container =>
  4. {
  5. container.UseMinio(minio =>
  6. {
  7. minio.EndPoint = "你的 minio endPoint";
  8. minio.AccessKey = "你的 minio accessKey";
  9. minio.SecretKey = "你的 minio secretKey";
  10. minio.BucketName = "你的 minio bucketName";
  11. });
  12. });
  13. });

参阅BLOB存储文档 学习如何为指定容器配置提供程序,

选项

  • EndPoint (string): 你的Minio对象存储服务的URL, 查看文档:https://docs.min.io/docs/dotnet-client-quickstart-guide.html
  • AccessKey (string): Access key是唯一标识你的账户的用户ID,
  • SecretKey (string): Secret Key是你的账户的密码
  • 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. 如果你想自定义文件路径计算,可以替换/覆盖它.