#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 МБ).