AWS boto3 - как показать картинку вместо принудительной загрузки - PullRequest
0 голосов
/ 31 октября 2019

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

это функция, которую я написал для загрузки изображения:

def upload_to_aws(local_file, bucket, s3_file):
    s3 = boto3.client('s3', aws_access_key_id=ACCESS_KEY,
                      aws_secret_access_key=SECRET_KEY)

    try:
        s3.upload_file(local_file, bucket, s3_file, {'ACL': 'public-read', 'ContentType': 'image/jpeg'})
        print("Upload Successful")
        return True
    except FileNotFoundError:
        print("The file was not found")
        return False
    except NoCredentialsError:
        print("Credentials not available")
        return False

Кто-нибудь имеет правильную конфигурацию для отображения загруженных изображений?

1 Ответ

1 голос
/ 31 октября 2019

Похоже, вы пропустили свойство ExtraArgs. Взгляните на следующий фрагмент кода:

import boto3
s3 = boto3.resource('s3')
s3.meta.client.upload_file(local_file, bucket, s3_file, ExtraArgs={'ACL': 'public-read', 'ContentType': 'image/jpeg'})

Подробнее о S3.Client.upload_file .

Чтобы убедиться, что тип содержимого установлен правильно, вы можетепроверьте его в консоли S3, щелкните правой кнопкой мыши объект и выберите Свойства => Изменить метаданные.

enter image description here

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