2

У меня есть сайт, который будет генерировать скриншоты с url2png.com. Мне не нравится тот факт, что каждые 30 дней ему нужно повторно отобразить все ваши скриншоты, рассчитывая на ваш лимит.Лучший способ сохранить скриншоты с url2png на собственный сервер?

В идеале я хотел бы сгенерировать их, и когда он будет завершен, я хочу сохранить его на своем собственном сервере, а затем просмотреть его там.

Я предполагаю, что я даже не совсем уверен, с чего начать, в частности ..

  1. Как получить их в какой-то очереди, которая будет продолжать работать до тех пор, пока изображение не оказанной и вернулся (я использовал Redis/resque/resque_pool, но это было довольно сложно, и мне неудобно прокладывать очень сложный маршрут в этом приложении, так как я думаю, что это будет использоваться многими людьми. Id предпочитает что-то более простое, что не так легко испортить)

  2. Как получить изображение с рельсов

  3. Как сохранить изображение в определенный каталог с определенным именем файла

  4. Как ссылаться на актив в моем фактическом приложении

  5. Как обрабатывать скриншоты из вида модели/контроллера. Должен ли это быть только один дополнительный атрибут, назначенный ресурсу, что-то вроде Resource.screenshot_url?

Они обеспечивают драгоценный камень Руби, но я не верю, я буду использовать это потому, что его единственным вариантом является извлечение изображения из своего сервера, вместо этого я собираюсь использовать свой формат URL, чтобы получить изображение из, затем каким-то образом создайте свой собственный URL.

http://api.url2png.com/v3/<API_KEY>/<TOKEN>/<BOUNDING-BOX>/<URL>

ответ

5

URL2PNG апи достаточно быстро, новые запросы обрабатываются немедленно и, как правило возвращают PNG в течение 10 секунд или меньше.

Система для отслеживания каждого запроса и опроса для статуса, вероятно, будет излишней. Если вы ищете фоновое задание, это совсем другая история.

Части 2,3,4 и 5 будут обрабатываться драгоценным камнем скрепки под рукой. Я предлагаю начать здесь: Save image from URL by paperclip

Мое предпочтительное решение - это обратный прокси-сервер для кэширования. https://serverfault.com/questions/30705/how-to-set-up-nginx-as-a-caching-reverse-proxy

Существует аналогичный модуль apache, называемый «mod_disk_cache». YMMV. http://httpd.apache.org/docs/2.2/mod/mod_disk_cache.html

Как это работает: Ваше приложение будет делать запросы к

http://url2png.yourdomain.com/v3/<API_KEY>/<TOKEN>/<BOUNDING-BOX>/<URL> 

Прокси-бы проверить, если запрос был в кэше. Если он не был найден, запрос будет перенаправлен на сервер url2png.com.

+0

Да, я думал о фоновой работе. Спасибо за вашу другую информацию! Что именно кэширует обратный прокси? могу ли я сделать это с помощью apache? – Tallboy