чтобы достичь того, что в названии, я пытаюсь выполнить пару шагов (используя python & AWS SDK), которые я перечислю после того, как упомяну об ошибке, которую я получаю: 412 "По крайней мере одно из указанных вами предварительных условий не выполненоhold »во второй итерации метода get_object, когда я отправляю ему параметры: bucket, key и IfMatch (в этой строке происходит сбой).
Вывести список всех версий объекта с помощью следующего кода
s3 = boto3.client('s3')
response = s3.list_object_versions(
Bucket='my-bucket',
Prefix='file.exe'
)
obj_versions = response["Versions"]
Это полностью работает, но мне нужны версии, которые я установил в метаданных (x-amz-meta-version), чтобы получить каждый объектверсия метаданных Я пытаюсь сделать следующее:
obj_info = []
for obj_version in obj_versions:
obj = s3.get_object(
Bucket='my-bucket',
Key='file.exe',
IfMatch=obj_version['ETag']
)
obj_info.append(obj['Metadata']['version'])
И это все, на данный момент это работает только до второй итерации, как это ни странно, но всегда с ошибкой 412 "По крайней мере, одно из предварительных условий, которые выуказанное не удерживается "в строке s3.get_object (IfMatch).Я точно знаю, что ошибка в предварительном условии IfMatch, но я понятия не имею, что не так ... Я напечатал каждый ETag, который он получает, и все они действительны, он должен иметь возможность получить объект.Спасибо за чтение моего поста.