Тихий сбой S3 PutObject? - PullRequest
       2

Тихий сбой S3 PutObject?

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

Я пытался программно загрузить сообщения SNS в корзину S3 с помощью метода S3.Object.put () следующим образом:

bucket_resource=boto3.resource('s3')
bucket_client = boto3.client('s3')
body = subject + message
object = bucket_resource.Object(bucket_name, folder+'/'+fn)
object.put(Body=body)

Это не сработало, поэтому я попыталсяЧтобы попытаться загрузить объект в определенную корзину S3, выполните следующие действия.

body = subject + message
folder = datetime.datetime.today().strftime('%Y-%m-%d')
fn = datetime.datetime.today().strftime('%H:%M:%S')
key = folder_name + '/' + fn
bucket_resource = s3.Bucket(bucket_name)
bucket.upload_file(body, key)

Однако оба эти метода молча завершаются сбоем.Я не получаю никаких отказов в доступе, сообщений об ошибках и т. Д., Но я также не загружаю свое сообщение в корзину.Я не уверен, что происходит с каждым вызовом функции, и был бы признателен за любые рекомендации для людей, которые успешно загрузили файлы в корзины программным способом.

Примечание: у меня есть политика корзины, где моя учетная запись является единственнойучетная запись, которая может положить объекты в ведро.Нужно ли мне приложение, чтобы дать Lambda разрешение помещать объекты в корзину?

1 Ответ

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

См. здесь по обработке ошибок в python.

В основном исключение try / catch при вызове sdk, что-то вроде:

import boto3
from botocore.exceptions import ClientError, ParamValidationError

try:
    bucket_resource=boto3.resource('s3')
    bucket_client = boto3.client('s3')
    body = subject + message
    object = bucket_resource.Object(bucket_name, folder+'/'+fn)
    object.put(Body=body)
except s3.exceptions.<fill in>:
    print("known error occured")
except ClientError as e:
    print("Unexpected error: %s" % e)

Это ссылка, предоставленная оригинальным постером , и показывает возможные исключения, которые вы можете поймать для клиента S3

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