boto3放置元数据清空对象内容

时间:2019-02-13 12:47:13

标签: amazon-s3 ibm-cloud boto3

我在s3(IBM cos)中有对象,我正在尝试为存储桶中的对象更新元数据,例如自定义用户元数据。我正在使用以下代码段更新元数据。

但是当我在此之后检索对象时,我得到的是空内容。

import boto3 as client

s3 = client.resource('s3')
obj = s3.Bucket('MyBucket').Object('objectKey')
obj.put(Metadata={'name':'newName'})

还有其他方法可以做到吗?还是我做错了?

1 个答案:

答案 0 :(得分:0)

从上面粘贴的代码来看,您似乎只是在put调用中缺少结尾括号。当我测试它时,上面使用的语法可以正常工作:

>>> s3 = client.resource('s3')
>>> obj = s3.Bucket('my_bucket').Object('my_key')
>>> obj.put(Metadata={'foo': 'bar'})
{u'ETag': '"d41d8cd98f00b204e9800998ecf8427e"', 'ResponseMetadata': {'HTTPStatusCode': 200, 'RetryAttempts': 0, 'HostId': ...
>>> print obj.metadata
{'foo': 'bar'}