Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 boto3 put元数据清空对象内容_Amazon S3_Ibm Cloud_Boto3 - Fatal编程技术网

Amazon s3 boto3 put元数据清空对象内容

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'}) 有没有其他方法可以做到这一点,或者我做得不对?

我在s3(IBMCOS)中有对象,我正在尝试更新元数据,比如bucket中对象的自定义用户元数据。我正在使用下面的代码片段更新元数据

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

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'}

括号是一个拼写错误,但我的实际问题是在通话后内容被清空。括号是一个拼写错误,但我的实际问题是在通话后内容被清空。