我在s3(IBM cos)中有对象,我正在尝试为存储桶中的对象更新元数据,例如自定义用户元数据。我正在使用以下代码段更新元数据。
但是当我在此之后检索对象时,我得到的是空内容。
import boto3 as client
s3 = client.resource('s3')
obj = s3.Bucket('MyBucket').Object('objectKey')
obj.put(Metadata={'name':'newName'})
还有其他方法可以做到吗?还是我做错了?
答案 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'}