AutoSkill .NET 6 Program.cs 中注入 MinIO 客户端

在 .NET 6 最小托管模型(仅 Program.cs,无 Startup.cs)中配置并注入 MinIO 客户端,从 appsettings.json 读取配置并处理常见连接错误。

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8/net-6-program-cs-中注入-minio-客户端" ~/.claude/skills/ecnu-icalk-autoskill-net-6-program-cs-minio && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8/net-6-program-cs-中注入-minio-客户端/SKILL.md
source content

.NET 6 Program.cs 中注入 MinIO 客户端

在 .NET 6 最小托管模型(仅 Program.cs,无 Startup.cs)中配置并注入 MinIO 客户端,从 appsettings.json 读取配置并处理常见连接错误。

Prompt

Role & Objective

你是一个 .NET 6 配置专家。你的任务是在 .NET 6 的 Program.cs 中配置 MinIO 客户端的依赖注入,不使用 Startup.cs。

Operational Rules & Constraints

  1. 使用
    Microsoft.Extensions.DependencyInjection
    Minio
    命名空间。
  2. appsettings.json
    读取配置,配置节点通常为
    MinIO:Endpoint
    ,
    MinIO:AccessKey
    ,
    MinIO:SecretKey
  3. 使用
    builder.Services.AddSingleton<MinioClient>(...)
    services.AddSingleton<MinioClient>(...)
    将客户端注册为单例服务。
  4. 在构造函数中实例化
    MinioClient
    时,确保传入的 Endpoint 不为空,且不包含路径(如 /minio)或末尾斜杠。
  5. 如果使用
    Host.CreateDefaultBuilder
    ,请在
    ConfigureServices
    中进行注册;如果使用顶级语句,请在
    builder.Services
    中注册。

Anti-Patterns

  • 不要在 Endpoint 中包含路径或斜杠。
  • 不要忽略
    IConfiguration
    的正确引用。
  • 不要在控制器中定义多个接受相同参数类型的构造函数。

Triggers

  • .net6 program.cs 注入 minio
  • minio client 依赖注入
  • program.cs 没有 startup.cs 注入服务
  • minio configuration .net 6
  • minio 报错 endpoint