Skip to content

Latest commit

 

History

History
executable file
·
13 lines (9 loc) · 3.13 KB

README.md

File metadata and controls

executable file
·
13 lines (9 loc) · 3.13 KB

i.vas3k.ru -- небольший скрипт на Python для загрузки изображений на сервер, созданный специально для твиттер-клиента tweetbot (но вроде как некоторые другие тоже умеют custom image uploading service). Использует Flask для http, PIL для работы с изображениями, PostgreSQL для хранения метаданных и nginx X-Accel-Redirect для генерации превью по любому заданном URL'у. Чисто из спортивного интереса располагается в одном файле (app.py). Ну почти.

Вы можете развернуть этот скрипт у себя на сервере и пользоваться так же как и я. У меня он развернут на поддомене i.vas3k.ru, откуда и получил такое название. Широко используется в моем блоге vas3k.ru для вывода отмасштабированных под размер блока изображений. Для загрузки фото через tweetbot в моем случае нужно указать URL: http://i.vas3k.ru/upload/, файл с именем "image" передается в POST, а так же заголовки для Twitter oAuth Echo. После загрузки возвращается { "url": "http://i.vas3k.ru/32p.jpg" }

Так же есть возможность загружать файлы через простой веб-интерфейс, который доступен при заходе в корень.

Иногда эта фигня кажется слишком простой и банальной, и меня порывает всё "правильно" переписать. Но она отлично работает, делает свое дело и за годы ни разу не сбоила. Значит не надо лезть со своим идеализмом и овердизайном сюда!

  • http://i.vas3k.ru/32p.jpg — «каноническая» ссылка на файл. Чтобы не жрать трафик twitter-клиентов, является уменьшеной до 1200px по длинной стороне копией файла;
  • http://i.vas3k.ru/full/32p.jpg — возвращает оригинал загруженной фотографии;
  • http://i.vas3k.ru/500/32p.jpg — изменение размера до 500px по длинной стороне. Min = 50, max = 2000;
  • http://i.vas3k.ru/width/500/32p.jpg — изменение размера до 500px по ширине. Этот и следующий URL сделаны для удобства встраивания на сайты, например, в таймлайны;
  • http://i.vas3k.ru/square/500/32p.jpg — кроп до квадрата в центре изображение со стороной равной короткой стороне изображения. После кропа квадрат ресайзится до 500px.