从 Amazon S3 存储桶中检索图像
Retrieving images from Amazon S3 bucket
我将图像存储在 S3 存储桶中,但无法显示图像的 link。这是我得到的错误:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>8CAF92C03A75648C</RequestId>
<HostId>
ocfqcRiXsJoV0mBom0z+nmV3seEMRpdBMvDddy1sgQrIOq19/UvK6BmurlM8v20zGIvh2ITHjYc=
</HostId>
</Error>
我需要在各个域上显示图像,但我无法为每个域制定 CORS 规则。
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
如何打开此存储桶以便公开显示图片?
与CORS无关,是S3 bucket配置。
如果您对整个存储桶 public-read、here's the official AWS guide 和我的粗略步骤感到满意:
- 启用虚拟主机,添加 index/error 文档默认值。
- 添加 public-read 策略(如下;只需要更改 BUCKETNAME)
- 盈利!
政策:
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadForGetBucketObjects",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::BUCKETNAME/*"
]
}
]
}
请注意,如果您使用 S3 托管静态内容,您应该真正使用 CDN(如 CloudFront)并注意您的 cache-control header.
我将图像存储在 S3 存储桶中,但无法显示图像的 link。这是我得到的错误:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>8CAF92C03A75648C</RequestId>
<HostId>
ocfqcRiXsJoV0mBom0z+nmV3seEMRpdBMvDddy1sgQrIOq19/UvK6BmurlM8v20zGIvh2ITHjYc=
</HostId>
</Error>
我需要在各个域上显示图像,但我无法为每个域制定 CORS 规则。
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
如何打开此存储桶以便公开显示图片?
与CORS无关,是S3 bucket配置。
如果您对整个存储桶 public-read、here's the official AWS guide 和我的粗略步骤感到满意:
- 启用虚拟主机,添加 index/error 文档默认值。
- 添加 public-read 策略(如下;只需要更改 BUCKETNAME)
- 盈利!
政策:
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadForGetBucketObjects",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::BUCKETNAME/*"
]
}
]
}
请注意,如果您使用 S3 托管静态内容,您应该真正使用 CDN(如 CloudFront)并注意您的 cache-control header.