Предварительные условия при настройке содержимого для ключа с помощью boto3

На boto2 мы можем сохранить объект, используя имя объекта Key в качестве ключа и предварительные условия (например, If-Match, If-None-Match и т. д.) внутри параметра dict заголовков, который будет отправлен с запросом PUT.

Пример:

# assume both bucket and key are created beforehand
fp_a = FakeWriteFile(file_size, 'A')
key.set_content_from_file(fp_a, headers={'If-Match': '*'})

Теперь для boto3 есть по крайней мере пара API, которые позволили бы нам поместить объект в ведро, например:

fp_a = FakeWriteFile(file_size, 'A')
bucket.Object('foo').put(Body=fp_a)

В качестве альтернативы, используя низкоуровневый клиент S3:

bucket.put_object(Key='foo', Body=fp_a) 

Для двух приведенных выше случаев на boto3, где мне нужно добавить предварительные условия, чтобы гарантировать, что эти запросы PUT выполняются, если они соответствуют всем условиям, аналогично параметру заголовков boto2 с установленными предварительными условиями? Я пытался найти информацию о boto3 API DOC, но эти предварительные условия установлены только для операций GET: https://boto3.readthedocs.io/en/latest/reference/services/s3.html

Спасибо!


person Aragorn    schedule 24.02.2017    source источник


Ответы (1)


S3 фактически игнорирует эти параметры в запросе PUT.

person r3m0t    schedule 12.07.2017