我正尝试使用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
元数据?
答案 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')