Amazon s3 boto3 put元数据清空对象内容
我在s3(IBMCOS)中有对象,我正在尝试更新元数据,比如bucket中对象的自定义用户元数据。我正在使用下面的代码片段更新元数据 但是当我在这之后检索对象时,我得到的是空内容Amazon s3 boto3 put元数据清空对象内容,amazon-s3,ibm-cloud,boto3,Amazon S3,Ibm Cloud,Boto3,我在s3(IBMCOS)中有对象,我正在尝试更新元数据,比如bucket中对象的自定义用户元数据。我正在使用下面的代码片段更新元数据 但是当我在这之后检索对象时,我得到的是空内容 import boto3 as client s3 = client.resource('s3') obj = s3.Bucket('MyBucket').Object('objectKey') obj.put(Metadata={'name':'newName'}) 有没有其他方法可以做到这一点,或者我做得不对?
import boto3 as client
s3 = client.resource('s3')
obj = s3.Bucket('MyBucket').Object('objectKey')
obj.put(Metadata={'name':'newName'})
有没有其他方法可以做到这一点,或者我做得不对?从上面粘贴的代码中可以看出,您的
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'}
从上面粘贴的代码可以看出,您的
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'}
括号是一个拼写错误,但我的实际问题是在通话后内容被清空。括号是一个拼写错误,但我的实际问题是在通话后内容被清空。