AWS S3 и Cloudfront для хранения образов

Я использую AWS S3 для хранения своих изображений и доступа к ним через Cloudfront. Вот мой формат URL-адреса доступа. Например:

http://mybucket.s3.amazonaws.com/qGdyRHeptWqR5sl.jpg

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

Есть ли возможность для создания миниатюрного изображения на лету, просто запросив URL-адрес, как показано ниже:

http://mybucket.s3.amazonaws.com/thumb/200/150/qGdyRHeptWqR5sl.jpg

OR

http://mybucket.s3.amazonaws.com/qGdyRHeptWqR5sl.jpg?size=200x200

OR

http://mybucket.s3.amazonaws.com/qGdyRHeptWqR5sl.jpg?width=200&height=200

Я пробовал все указанные выше URL, но безуспешно. Нужно ли мне использовать для этого какой-нибудь плагин для изменения размера изображения? Нужно ли мне запрашивать изображение у cloudefront и изменять его размер, а затем повторно загружать его на S3?

Я использую Java в качестве языка программирования, пожалуйста, порекомендуйте мне какой-нибудь плагин или лучший подход в этом случае.


person user3370108    schedule 19.03.2015    source источник


Ответы (1)


Одно из возможных решений связано с подключаемым модулем http://nginx.org/en/docs/http/ngx_http_image_filter_module.html для Nginx. Вы можете установить Nginx и настроить его для изменения размера изображений из S3 по запросу.

Вот статья, в которой описывается, как это сделать.

person Maxim    schedule 19.03.2015
comment
Привет, maxd, спасибо за ответ. Я использую сервер Tomcat. Я думаю, что этот вариант не подходит для сервера apache tomcat. Есть ли другой вариант? - person user3370108; 19.03.2015