SuperAPI AI 工具集

sealos-s3

部署与运维

查看项目

更新于 10-15 15:12

技能介绍

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 等。
  • 通过真实的上传/读取或预签名路径验证存储行为。
  • 清理临时测试对象,并报告策略状态。

使用方式

  1. 解析目标项目:确认工作目录,运行分析脚本 node <SKILL_DIR>/scripts/analyze-project-s3.mjs <project-dir>,并检查其引用的真实文件。
  2. 检查 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。
  3. 选择创建或复用:先列出存储桶 sealos-cli s3 buckets -o json;复用匹配的桶,或创建新桶 sealos-cli s3 create-bucket <bucket-name> --policy private -o json。
  4. 按需初始化凭证:sealos-cli s3 secret -o json,若未就绪可稍后重试。
  5. 接入开发环境:只映射项目已使用的键,参考 references/env-integration.md。本地开发使用 secret.external 端点,应用运行在 Sealos/Devbox 内且可访问内部端点时使用 secret.internal。
  6. 验证应用存储行为:运行项目脚本或测试,或用 sealos-cli s3 upload 上传小文件、列出、下载到临时路径并删除;预签名功能可用 sealos-cli s3 presign <bucket> <key> --expires 3600 -o json。
  7. 报告结果:存储桶名称、策略、区域/工作区、就绪状态;更新的环境文件和键名(不泄露值);验证命令与结果;后续公开策略、凭证轮换或清理事项。

适用场景

  • 将现有项目连接到 Sealos 对象存储。
  • 在开发中替换本地 MinIO(保留 Compose 回退)。
  • 上传或分享项目资产,优先使用预签名而非公开桶策略。

限制与安全规则

  • 绝不打印密钥、完整凭证块或复制的环境变量值。
  • 不覆盖已有环境变量值,除非确认或保留旧值。
  • 不提交 .env、.env.local、S3 访问密钥、密钥、kubeconfig 或 Sealos 认证文件。
  • 公开存储桶前需询问,默认私有。
  • 破坏性操作(删除桶、删除对象、活跃应用凭证轮换、替换存储配置)前需询问。
  • 默认使用 sealos-cli 的 JSON 输出并解析,而非抓取表格输出。
  • 工作区不明确、凭证未就绪或环境目标被跟踪时,在变更前停止请求。

该技能基于 zjy365/sealos-cli#28,该 PR 注册了 s3 命令并实现了存储桶 CRD 操作及 S3 兼容对象操作。