Подтвердить что ты не робот

Масштабирование изображений, хранящихся на S3

Я в ситуации, когда мне нужно вывести хранилище изображений для нескольких веб-сайтов на службу, которая может масштабироваться неограниченно (S3, CloudFiles и т.д.). До этого момента мы смогли позволить нашим пользователям создавать пользовательские размеры эскизов на лету, используя библиотеку изображений Python с помощью sorl-thumbnail в Django.

Перемещение наших изображений на что-то вроде S3, способность быстро создавать эскизы "на лету" теряется. Мы можем либо:

  • Делайте это медленно, загрузив источник из S3 и создав миниатюру локально
    con: он медленный и интенсивный с пропускной способностью
  • Сделайте это заранее, создав предопределенный набор миниатюр (a'la Flickr) и нажав их все на S3
    con: он ограничивает размеры, которые могут быть сгенерированы, и хранит множество файлов, которые никогда не будут использоваться
  • Позволяет изменять размер браузера с использованием атрибутов height/width в теге img.
    con: дополнительная пропускная способность, используемая при загрузке большего, чем необходимые файлы.

На этом этапе № 3 выглядит простым решением проблемы с небольшими недостатками. Некоторые быстрые тесты и данные с этого сайта показывают, что качество не так плохо, как ожидалось (мы могли бы заверить, что соотношение сторон поддерживается).

Любые предложения по другим вариантам или недостаткам, которые мы не можем принимать во внимание?

Примечание. Изображения являются цифровыми фотографиями и используются только для отображения в Интернете. Размер будет составлять от 1000 до 50 пикселей по высоте/ширине.

4b9b3361

Ответ 1

Я бы рекомендовал использовать EC2 для масштабирования изображений по требованию. Поскольку пропускная способность между EC2 и S3 является бесплатной, и она должна быть быстрой, я думаю, что устраняет все проблемы с решением № 1.