我正在尝试使用亚马逊的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
将不胜感激.
Content-Type
不是自定义元数据,这是Metadata
用于.它有自己的属性,可以像这样设置:
bucket.put_object(Key='index.html', Body=data, ContentType='text/html')
注意:.put_object()
可以设置多个Content-Type
.查看Boto3文档以了解其余部分.
您也可以使用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"} )