SuperAPI AI 工具集

s3

部署与运维

查看项目

更新于 10-16 06:02

技能介绍

用途

S3 部署技能用于把本地目录(例如生成的静态站点、幻灯片等文件)上传到 AWS S3 存储桶,或任何兼容 S3 的对象存储服务(如 MinIO、阿里云 OSS、腾讯云 COS),以便进行静态网站托管和公开访问。

主要能力

  • 遍历指定的源目录,按相对路径结构逐个上传文件。
  • 支持通过 endpoint_url 配置非 AWS 的 S3 兼容服务。
  • 根据文件扩展名为每个文件设置正确的 ContentType(例如 .html 使用 text/html、.css 使用 text/css、.png 使用 image/png),确保浏览器正确渲染。
  • 在存储桶策略允许或需要 ACL 的情况下,可将对象设为公开。
  • 上传完成后打印最终网站 URL。

使用方式

前置条件:确保环境中存在有效凭证:

  • S3_ACCESS_KEY_ID
  • S3_SECRET_ACCESS_KEY
  • S3_BUCKET(可选,若作为参数提供)
  • S3_REGION(可选)
  • S3_ENDPOINT_URL(非 AWS 服务如 MinIO 或阿里云 OSS 时必需)
  • S3_CUSTOM_DOMAIN(可选,用于覆盖生成的 URL)

确保环境中已安装 boto3,若未安装则需安装。

确定源目录(例如 slides/<ppt-name>/dist/)和目标 S3 存储桶名称。

使用随附脚本上传文件:

# 显式指定存储桶名称
uv run {baseDir}/scripts/upload_to_s3.py "slides/my-presentation/dist" "my-bucket" --prefix "presentations/my-presentation"

# 使用环境变量中的 S3_BUCKET
uv run {baseDir}/scripts/upload_to_s3.py "slides/my-presentation/dist" --prefix "presentations/my-presentation"

使用指引:

  • 存储桶名称:检查环境中是否设置了 S3_BUCKET,若未设置则向用户询问 S3 存储桶名称。
  • Endpoint URL:检查用户是否使用非 AWS 服务(如 MinIO 或阿里云),若是则请求或验证 endpoint_url。
  • 源路径:若未指定,默认在 slides/ 目录下查找 dist 文件夹。

适用场景

  • 将生成的静态网站或幻灯片上传到 S3 或兼容对象存储以供公开访问。
  • 使用 MinIO、阿里云 OSS、腾讯云 COS 等 S3 兼容服务进行静态托管。

限制

资料中未提供关于收费、价格、平台限制或具体效果的信息。