Объект 'S3' не имеет атрибута 'put_object_retention' - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь реализовать функцию блокировки объектов, недавно представленную AWS s3. Код работает отлично, когда я запускаю его локально. Но как только я разверну его на Amazon, он сломается и выдаст мне ошибку. Я попытался развернуть его, используя zappa, ECS, а также простую лямбду. Похоже, что пакеты Amazon Amazon Python не имеют последней версии boto3. Вот код, который я пытаюсь заставить работать:

    s3_client = boto3.client('s3', aws_access_key_id=access_key, aws_secret_access_key=secret_key)
response = s3_client.put_object_retention(
    Bucket=bucket,
    Key='docker.docx',
    Retention={
        'Mode': 'COMPLIANCE',
        'RetainUntilDate': datetime.datetime(2019, 1, 6)
    },
    VersionId='xN7ixBbDRaUoO99rpUzO6R8E30xox2Ng'
)

Моя конечная цель - развернуть его в приложении для колб. Но в настоящее время я застрял, потому что я не могу заставить это работать на любом развертывании AWS.

1 Ответ

0 голосов
/ 05 января 2019

put_object_retention() - довольно новая функция.

Вам нужно будет обновить boto3 до более новой версии:

sudo pip install boto3 --upgrade

Я только что обновился до v1.9.74, и он заработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...