当前位置:  开发笔记 > 编程语言 > 正文

使用Boto3在S3中的AWS内容类型设置

如何解决《使用Boto3在S3中的AWS内容类型设置》经验,为你挑选了2个好方法。

我正在尝试使用亚马逊的Boto3 SDK for Python 将网页上传到S3存储桶.

我无法设置Content-Type.Content-Type除了使用此代码指定的元数据之外,AWS还不断创建新的元数据键:

# Upload a new file
data = open('index.html', 'rb')
x = s3.Bucket('website.com').put_object(Key='index.html', Body=data)
x.put(Metadata={'Content-Type': 'text/html'})

如何设置任何指导Content-Type,以text/html将不胜感激.



1> Michael - sq..:

Content-Type不是自定义元数据,这是Metadata用于.它有自己的属性,可以像这样设置:

bucket.put_object(Key='index.html', Body=data, ContentType='text/html')

注意:.put_object()可以设置多个Content-Type.查看Boto3文档以了解其余部分.



2> Jheasly..:

您也可以使用upload_file()方法和ExtraArgs关键字(并将权限设置为World read):

import boto3
s3 = boto3.resource('s3')
s3.meta.client.upload_file('source_file_name.html', 'my.bucket.com', 'aws_file_name.html', ExtraArgs={'ContentType': "application/json", 'ACL': "public-read"} )


答案错误,它将设置'x-amz-meta-contenttype'='application / json',而不是'Content-Type'
推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有