![][1]
Хотя Discord — это приложение для голосового и текстового чата, каждый день через него проходит более ста миллионов изображений. Конечно, мы бы хотели, чтобы задача была простой: просто перенаправить картинки вашим друзьям по всем каналам. Но в реальности доставка этих изображений создаёт довольно большие технические проблемы. Прямая ссылка на картинки выдаст хосту с картинкой IP-адреса пользователей, а большие изображения расходуют много трафика. Чтобы избежать этих проблем, требуется промежуточный сервис, который будет получать изображения для пользователей и изменять их размер для экономии трафика.
Для выполнения этой работы мы создали сервис Python и креативно назвали его _Image Proxy_. Он загружает картинки с удалённых URL, а затем выполняет ресурсоёмкую задачу по ресайзингу с помощью пакета [pillow-simd][2]. Этот пакет работает удивительно быстро, используя где только возможно для ускорения ресайзинга [инструкции x86 SSE][3]. Image Proxy будет получать HTTP-запрос, содержащий URL, чтобы загрузить, изменить размер и, наконец, выдать окончательное изображение.
[Читать дальше →][4]
[1]:
https://habrastorage.org/getpro/habr/post_images/201/bce/32b/201bce32b07895b92f2cb2026ae6c708.png
[2]:
https://github.com/uploadcare/pillow-simd
[3]:
https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions
[4]:
https://habrahabr.ru/post/343414/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut