我有一个包含图像的存储桶,该桶内容是通过Cloudfront分发版和S3桶之间关联的OAI从Cloudfront发行版分发的。我的问题是,当我试图显示来自那个桶的任何图像时,浏览器尝试下载而不是显示。我在这里读到了一些关于同一个问题的问题,我看到来自图像的元数据应该是image/jpeg或image/png,所以我这样做了,但是出于某些原因,一些图像试图下载而不是显示,即使在此之后,我根据图像扩展更改了元数据内容类型。应该做些什么来解决这个问题?
发布于 2022-03-09 16:41:47
您可以尝试以下方法来解决您的问题:
现在让我们看看我是如何创建它的:1.创建cloudfront发行版。您可以在这里看到必要的步骤。和重要注意事项 2.请100%确保桶映像是公共的,而不是私有的(如果它是私有的,您将得到重要注意事项错误) 3。将所有内容保留为默认值。4.创建cloudfront发行版后,等待15-30分钟才能启用它!5.将图像上传到S3进行测试。将所有值设为默认值(建议值)。6.现在打开带有图像和tada的CloudFront域!你的形象现在准备好了。请跟我来,因为我花了5-6个小时解决你的问题!
发布于 2022-03-14 17:58:27
我用这种方法解决了这个问题:
def update_metadata(key, bucket, extension):
s3.copy_object(Key=key, Bucket=bucket,
CopySource={"Bucket": bucket, "Key": key},
ContentType=f"image/{extension}",
MetadataDirective="REPLACE")参数:
这样,脚本将覆盖当前的内容类型,并在通过浏览器进行请求时显示图像。使用的图书馆是boto3。
要点:在运行更改之后,有必要在Cloudfront发行版上创建一个无效,以便一切正常工作。
https://stackoverflow.com/questions/71412874
复制相似问题