这个问题可能是因为Amazon S3的图片被默认设置为私有,无法在浏览器上直接访问。要解决这个问题,可以在S3上创建一个策略,允许公共访问,并在对象上添加一个元数据,以显示策略允许访问。
以下是一个示例策略,在S3中创建一个名为“my-bucket”的存储桶,并将其应用于存储桶中的所有对象:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"PublicReadForGetBucketObjects",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::my-bucket/*"]
}
]
}
接着,在上传图片到S3时,要在元数据中添加以下内容:
{
"Content-Type":"image/jpeg",
"Cache-Control":"max-age=86400",
"x-amz-meta-public":"true"
}
这将允许Chrome等浏览器访问S3上的图片,并在页面中正确地显示它们。