Загрузите файл AWS S3 из Flask

Я создал небольшое приложение, которое должно загружать файл с AWS S3.

Я могу правильно загрузить данные таким образом:

 s3_client = boto3.resource('s3')
 req = s3_client.meta.client.download_file(bucket, ob_key, dest)

но если я добавлю эту функцию в колбу, она больше не работает. Я получаю эту ошибку:

ClientError: при вызове операции HeadObject произошла ошибка (400): неверный запрос

Я не могу понять, почему он не работает внутри маршрута. Есть идеи?

python,amazon-s3,flask,boto3,

0

Ответов: 2


1

Это связано с вашим регионом AWS. Указать название региона как добавленный параметр.

Попробуйте на локальном компьютере, используя

aws s3 cp s3://bucket-name/file.png file.png --region us-east-1

Если вы можете загрузить файл с помощью этой команды, он также отлично работает с вашим API.


0

Проблема заключалась в том, что с флягой мне нужно было объявить s3_client как глобальную переменную, а не только внутри функции.

Теперь он отлично работает!

Python, амазонка-s3, колба, boto3,