Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 Bot3-ContentInline不工作_Amazon S3_Django Rest Framework_Boto3 - Fatal编程技术网

Amazon s3 Bot3-ContentInline不工作

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_

我在django restfrmework项目中使用boto3将图像上传到亚马逊。但我面临着这个问题。每当我在浏览器中放置url时,我的图像就会自动开始下载。我设置了属性ContentDisposition='inline',但仍然下载了我的图像。这有什么把戏吗

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的回复。也许这项工作是可能的,但我用其他方式上传文件,这对我来说是可行的。如果有人尝试,请尝试这个,让我知道我会解决这个答案。