Sealos S3 是一个面向项目对象存储接入的技能,基于 sealos-cli 新增的 s3 命令(zjy365/sealos-cli#28),用于为项目配置、连接和操作 Sealos 对象存储。
用途 该技能用于识别应用的对象存储需求,创建或复用存储桶,按需初始化凭证,写入最小安全的环境变量集合,并验证项目的上传/下载或预签名 URL 路径。默认结果为:为项目接入真实的 Sealos 对象存储。
主要能力
- 分析项目对象存储意图,列出已有存储桶。
- 创建或复用私有存储桶,默认策略为 private。
- 仅在需要时初始化凭证,等待凭证就绪。
- 只映射项目已使用的环境变量键,如 S3_ENDPOINT、S3_ACCESS_KEY_ID、S3_SECRET_ACCESS_KEY、S3_BUCKET 等。
- 通过真实的上传/读取或预签名路径验证存储行为。
- 清理临时测试对象,并报告策略状态。
使用方式
- 解析目标项目:确认工作目录,运行分析脚本 node <SKILL_DIR>/scripts/analyze-project-s3.mjs <project-dir>,并检查其引用的真实文件。
- 检查 sealos-cli:使用 sealos-cli --version、sealos-cli s3 --help、sealos-cli whoami;未安装时可用 npx -y sealos-cli@latest ...,全局安装前需询问。认证缺失或过期时运行 sealos-cli login <region>、sealos-cli workspace list、sealos-cli workspace current。
- 选择创建或复用:先列出存储桶 sealos-cli s3 buckets -o json;复用匹配的桶,或创建新桶 sealos-cli s3 create-bucket <bucket-name> --policy private -o json。
- 按需初始化凭证:sealos-cli s3 secret -o json,若未就绪可稍后重试。
- 接入开发环境:只映射项目已使用的键,参考 references/env-integration.md。本地开发使用 secret.external 端点,应用运行在 Sealos/Devbox 内且可访问内部端点时使用 secret.internal。
- 验证应用存储行为:运行项目脚本或测试,或用 sealos-cli s3 upload 上传小文件、列出、下载到临时路径并删除;预签名功能可用 sealos-cli s3 presign <bucket> <key> --expires 3600 -o json。
- 报告结果:存储桶名称、策略、区域/工作区、就绪状态;更新的环境文件和键名(不泄露值);验证命令与结果;后续公开策略、凭证轮换或清理事项。
适用场景
- 将现有项目连接到 Sealos 对象存储。
- 在开发中替换本地 MinIO(保留 Compose 回退)。
- 上传或分享项目资产,优先使用预签名而非公开桶策略。
限制与安全规则
- 绝不打印密钥、完整凭证块或复制的环境变量值。
- 不覆盖已有环境变量值,除非确认或保留旧值。
- 不提交 .env、.env.local、S3 访问密钥、密钥、kubeconfig 或 Sealos 认证文件。
- 公开存储桶前需询问,默认私有。
- 破坏性操作(删除桶、删除对象、活跃应用凭证轮换、替换存储配置)前需询问。
- 默认使用 sealos-cli 的 JSON 输出并解析,而非抓取表格输出。
- 工作区不明确、凭证未就绪或环境目标被跟踪时,在变更前停止请求。
该技能基于 zjy365/sealos-cli#28,该 PR 注册了 s3 命令并实现了存储桶 CRD 操作及 S3 兼容对象操作。