Amazon s3 Bot3-ContentInline不工作
我在django restfrmework项目中使用boto3将图像上传到亚马逊。但我面临着这个问题。每当我在浏览器中放置url时,我的图像就会自动开始下载。我设置了属性ContentDisposition='inline',但仍然下载了我的图像。这有什么把戏吗Amazon s3 Bot3-ContentInline不工作,amazon-s3,django-rest-framework,boto3,Amazon S3,Django Rest Framework,Boto3,我在django restfrmework项目中使用boto3将图像上传到亚马逊。但我面临着这个问题。每当我在浏览器中放置url时,我的图像就会自动开始下载。我设置了属性ContentDisposition='inline',但仍然下载了我的图像。这有什么把戏吗 session = boto3.Session( aws_access_key_id=YOUR_ACCESS_KEY, aws_secret_access_
session = boto3.Session(
aws_access_key_id=YOUR_ACCESS_KEY,
aws_secret_access_key=YOUR_SECRET_KEY,
region_name=YOUR_AWS_REGION
)
s3 = session.resource('s3')
bucket = s3.Bucket(AWS_BUCKET_NAME)
bucket.put_object(Key=image_name, Body=file, ACL='public-read', ContentDisposition='inline')
当您检查s3 bucket中上传的图像文件的属性以及其中的元数据时,您将看到两个键,一个是ContentDisposition:inline,另一个是Content Type:binary/octet stream。因此,您的文件将被下载,而不是内联视图,因为只要缺少ContentType,deault就会将其设置为s3 bucket中的二进制/八位字节流,这是一种可下载的文件类型。因此,您只需将其更正为image/jpeg 替换:
bucket.put_object(Key=image_name, Body=file, ACL='public-read', ContentDisposition='inline')
致:
我希望这可以正常工作。当您检查s3 bucket中上传的图像文件的属性以及其中的元数据时,您将看到两个键,一个是ContentDisposition:inline,另一个是Content Type:binary/octet stream。因此,您的文件将被下载,而不是内联视图,因为只要缺少ContentType,deault就会将其设置为s3 bucket中的二进制/八位字节流,这是一种可下载的文件类型。因此,您只需将其更正为image/jpeg 替换:
bucket.put_object(Key=image_name, Body=file, ACL='public-read', ContentDisposition='inline')
致:
我希望这一切正常。您是否验证了ContentDisposition设置正确?@UmairMohammad感谢您的回复。你能详细说明一下吗?是的,我发送如上所示。即使是ACL参数也在工作,但没有ContentDispositionUpload文件,然后转到S3 UI,检查文件的属性并检查头是否设置正确。您是否验证ContentDisposition设置正确?@UmairMohammad感谢您的回复。你能详细说明一下吗?是的,我发送如上所示。即使是ACL参数也在工作,但没有ContentDispositionUpload文件,然后转到S3 UI,检查文件的属性并检查头是否设置正确。感谢@Vipul的响应。也许这项工作是可能的,但我用其他方式上传文件,这对我来说是可行的。如果有人尝试,请尝试这个,让我知道我会解决这个问题。谢谢@Vipul的回复。也许这项工作是可能的,但我用其他方式上传文件,这对我来说是可行的。如果有人尝试,请尝试这个,让我知道我会解决这个答案。