boto3 put метаданные очищает содержимое объекта - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть объекты в s3 (IBM cos), я пытаюсь обновить метаданные, такие как пользовательские метаданные для объектов в корзине.Я использую приведенный ниже фрагмент для обновления метаданных.

Но когда я получаю объект после этого, я получаю пустое содержимое.

import boto3 as client

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

Есть ли другой способ сделать этоили я делаю это неправильно?

1 Ответ

0 голосов
/ 13 февраля 2019

Из кода, вставленного выше, похоже, что вы просто пропустили закрывающую скобку в своем вызове 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'}
...