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

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

- Skill: `ecnu-icalk/net-6-program-cs-minio` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/net-6-program-cs-minio`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/net-6-program-cs-minio/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/net-6-program-cs-minio

---


# .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

