无法使用boto3 python更改AWS S3内容类型元数据

时间:2019-08-27 12:27:39

标签: python python-3.x amazon-s3 boto3

我正尝试使用python3的boto3库更改S3对象的Content-type元数据(如该SO答案https://stackoverflow.com/a/39596988/1723695中所建议):

s3 = session.resource('s3')
buck = s3.Bucket(BUCK_NAME)
obj = buck.Object('fe8e78d7-154f-4cd7-97a2-b432a67aabba')
obj.metadata.update({'Content-type': 'image/jpeg'})
obj.copy_from(CopySource={'Bucket': BUCK_NAME, 'Key': obj.key},
        Metadata=obj.metadata, MetadataDirective='REPLACE')

此代码成功更新了S3对象的元数据,但是使用了 x-amz-meta-content-type键而不是Content-type(请参阅AWS S3对象属性的屏幕截图)。为什么会发生这种情况,以及如何使用Content-Type为S3对象更新boto3元数据?

enter image description here

1 个答案:

答案 0 :(得分:1)

尝试一下

s3 = session.resource('s3')
buck = s3.Bucket(BUCK_NAME)
obj = buck.Object('fe8e78d7-154f-4cd7-97a2-b432a67aabba')
obj.copy_from(CopySource={'Bucket': BUCK_NAME, 'Key': obj.key},
        ContentType='image/jpeg', MetadataDirective='REPLACE')