gpt4 book ai didi

python - 如何更改 Amazon S3 中对象的元数据

转载 作者:IT老高 更新时间:2023-10-28 21:49:20 24 4
gpt4 key购买 nike

如果您已将对象上传到 Amazon S3 存储桶,如何使用 API 更改元数据?可以在 AWS 管理控制台中执行此操作,但不清楚如何以编程方式完成。具体来说,我在 Python 中使用 boto API,并且从阅读源代码中可以清楚地看出,使用 key.set_metadata 仅在创建对象之前有效,因为它只会影响本地字典。

最佳答案

看来您需要使用“PUT Object (Copy)”和 x-amz-metadata-directive: REPLACE header 以及元数据来覆盖对象本身。在 boto 中,可以这样完成:

k = k.copy(k.bucket.name, k.name, {'myKey':'myValue'}, preserve_acl=True)

请注意,您未包含在旧字典中的任何元数据都将被删除。因此,要保留旧属性,您需要执行以下操作:

k.metadata.update({'myKey':'myValue'})
k2 = k.copy(k.bucket.name, k.name, k.metadata, preserve_acl=True)
k2.metadata = k.metadata # boto gives back an object without *any* metadata
k = k2;

我几乎错过了这个解决方案,在一个标题错误的问题的介绍中暗示了这个问题,这个问题实际上与这个问题不同:Change Content-Disposition of existing S3 object

关于python - 如何更改 Amazon S3 中对象的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4754383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com