为了完整起见,我将在这里建立其他答案。
我已将存储桶移至子域,以便 Cloudflare 可以缓存内容。
- 旧 S3 存储桶名称:autoauctions
- 新 S3 存储桶名称:img.autoauctions.io
- CNAME 记录:img.autoauctions.io.s3.amazonaws.com
现在您需要复制所有对象,因为您无法重命名存储桶。以下是使用 AWS CLI 执行此操作的方法:
pip install awscli
aws configure
现在,您将旧存储桶内容复制到新存储桶。
aws s3 sync s3://autoauctions s3://img.autoauctions.io
我发现这对于我需要复制的 1TB 图像来说太慢了,所以我增加了并发连接的数量并从 EC2 实例重新运行。
aws configure set default.s3.max_concurrent_requests 400
同步吧!
想要将存储桶中的文件夹设为公开?像这样创建存储桶策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::img.autoauctions.io/copart/*"
},
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::img.autoauctions.io/iaai/*"
}
]
}
img.autoauctions.io
现在图像通过 Cloudflare 的缓存加载。
希望这可以帮助一些人!