Отображение изображения из S3 с помощью python

#python #amazon-web-services #amazon-s3 #image-processing

#python #amazon-веб-сервисы #amazon-s3 #обработка изображений

Вопрос:

Мне приходится обрабатывать очень большие изображения (размер> 2 ГБ), хранящиеся в aws s3. Перед обработкой я действительно хочу отобразить некоторые из них. Время загрузки невозможно, возможно ли отобразить их без загрузки, используя только Python?

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

1. Это невозможно с помощью необработанного python

2. Возможно, вы могли бы использовать бесплатный экземпляр уровня EC2 (который должен иметь более быструю и дешевую пропускную способность) для уменьшения размера перед загрузкой и обработкой…

3. Вы могли бы рассмотреть возможность использования стороннего сервиса для выполнения работы за вас, например: Cloudinary и Imgix

4. Я бы подумал о выполнении какой-либо пакетной операции с каждым изображением при его проглатывании. При необходимости создавайте эскизы различного размера и сохраняйте их в S3 с различными идентификационными префиксами, такими как thumbs/800/cat.png и thumbs/1024/cat.png.

Ответ №1:

Вы могли бы предоставить пользователю URL-адрес для открытия в веб-браузере. Это требует загрузки изображения, но это будет сделано за пределами Python.

Если вы хотите представить их в виде «миниатюры», вам понадобится метод преобразования изображения. Это можно сделать с помощью функции AWS Lambda, которая:

  • Загружает изображение в память (оно слишком велико для дискового пространства по умолчанию)
  • Изменяет размер изображения до меньшего размера
  • Сохраняет его в Amazon S3
  • Предоставляет URL-адрес для изображения меньшего размера

Это похоже на учебное пособие: использование AWS Lambda с Amazon S3, но потребуется настройка для управления изображением в памяти вместо загрузки изображения в дисковое хранилище функции Lambda (объем которого ограничен 512 МБ).