Загрузка файла с определенным идентификатором версии из AWS S3 с помощью Python

#python #amazon-web-services #amazon-s3

#python #amazon-web-services #amazon-s3

Вопрос:

Я пытаюсь загрузить файл, который имеет много версий, из корзины с поддержкой версий. Используя приведенный ниже код, он всегда загружает файл с последней версией.

 s3 = boto3.resource('s3')
bucket = s3.Bucket("mybucket")
bucket.download_file("somefile", "/donwload/path/somefile.txt")
 

Как я могу указать, какую версию я хочу загрузить для файла «somefile»?

Комментарии:

1. Попробуйте указать VersionId в ExtraArgs

Ответ №1:

Согласно комментариям, Bucket.download_file имеет ExtraArgs параметр, в котором вы можете указать дополнительные параметры, которые передаются Client.get_object функции, которая download_file переносит. Из документации get_object вы можете видеть, что соответствующий аргумент VersionId .

 s3 = boto3.resource('s3')
bucket = s3.Bucket("mybucket")
bucket.download_file(
    "somefile",
    "/donwload/path/somefile.txt",
    ExtraArgs={"VersionId": "my_version"}
)