S3 完整配置 · AWS S3

AWS S3 详细配置

本指南帮助你在 Amazon S3 上创建 Bucket、配置 IAM 用户与 CORS,并完成虾传对接。

适用场景

  • 使用 AWS 全球区域存储。
  • 需要与 AWS 生态集成的企业环境。

准备工作

  1. 登录 AWS 控制台
  2. 选择目标 Region(如 ap-northeast-1 东京)。
  3. 确保 IAM 有权限创建用户与 Bucket 策略。

创建 Bucket

  1. S3 → Create bucket
  2. 输入 Bucket 名称(全局唯一)。
  3. Block all public access 保持开启(通过预签名访问)。
  4. 创建完成后记下 Region 名称。
AWS S3 创建 Bucket
AWS S3 创建 Bucket

区域 Endpoint 示例:

https://s3.ap-northeast-1.amazonaws.com

创建 IAM 访问密钥

  1. IAM → Users → Create user
  2. 附加自定义内联策略(替换 bucket 名与 region):
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject",
        "s3:ListBucketMultipartUploads",
        "s3:AbortMultipartUpload",
        "s3:ListMultipartUploadParts",
        "s3:UploadPart",
        "s3:CompleteMultipartUpload"
      ],
      "Resource": [
        "arn:aws:s3:::your-bucket-name",
        "arn:aws:s3:::your-bucket-name/*"
      ]
    }
  ]
}
  1. Security credentials → Create access key(Application 用途)。
IAM 用户与 Access Key
IAM 用户与 Access Key

配置 CORS

  1. Bucket → Permissions → Cross-origin resource sharing (CORS) → Edit
  2. JSON 示例(大陆 Web):
[
  {
    "AllowedOrigins": ["https://xiachuan.net", "https://www.xiachuan.net"],
    "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
    "AllowedHeaders": ["*"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 86400
  }
]
AWS S3 CORS 配置
AWS S3 CORS 配置

填写虾传设置

字段示例
Endpointhttps://s3.ap-northeast-1.amazonaws.com
Regionap-northeast-1
Bucketyour-bucket-name
Path-style关闭(AWS 区域 Endpoint 使用虚拟托管)
Access Key IDIAM Access Key
Secret Access KeyIAM Secret
AWS Region 与 Endpoint
AWS Region 与 Endpoint
虾传 S3 设置页
虾传 S3 设置页

测试连接

测试成功后跨网传文件。若出现 PermanentRedirect,检查 Region 是否与 Bucket 一致。

常见问题

Path-style 要不要开? AWS 官方区域 Endpoint 通常 关闭 Path-style。

403 AccessDenied? IAM 策略需包含 ListBucketMultipartUploads 等分片相关 Action。

CORS 不生效? 确认编辑的是 目标 Bucket 的 CORS,而非账号级设置。