2

url2png.com でスクリーンショットを生成する Web サイトがあります。30日ごとにすべてのスクリーンショットを再レンダリングする必要があり、制限にカウントされるという事実は好きではありません.

理想的には、それらを生成したいと思います。それが完了したら、自分のサーバーに保存して、そこで表示したいと考えています。

具体的には、どこから始めればよいかさえよくわからないと思います..

  1. 画像がレンダリングされて返されるまで機能し続けるある種のキューにそれらを取得する方法 (以前は redis/resque/resque_pool を使用しましたが、これは非常に複雑で、このアプリで非常に複雑なルートを取るのは苦手です。多くの人に使われると思います。簡単に台無しにならない、もっとシンプルなものがいいと思います)

  2. 実際にレールから画像を取得する方法

  3. 特定のファイル名で特定のディレクトリに画像を保存する方法

  4. 実際のアプリでアセットを参照する方法

  5. モデル/コントローラー ビューからスクリーンショットを処理する方法。Resource.screenshot_url のように、Resource に割り当てられる 1 つの追加属性だけでよいでしょうか?

彼らはRuby gemを提供していますが、サーバーから画像を取得することが唯一のオプションであるため、それを使用するとは思いません。代わりに、URL形式を使用して画像を取得し、何らかの形で独自のものを生成しますURL。

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

4

1 に答える 1

5

URL2PNG API はかなり高速で、新しいリクエストはすぐに処理され、通常は 10 秒以内に png が返されます。

各リクエストを追跡してステータスをポーリングするシステムは、おそらくやり過ぎです。バックグラウンドジョブを探している場合、それは別の話です.

パート 2、3、4、および 5 は、paperclip gem で簡単に処理できます。ここから始めることをお勧めします:ペーパークリップで URL から画像を保存する

私の推奨する解決策は、キャッシング リバース プロキシです。 https://serverfault.com/questions/30705/how-to-set-up-nginx-as-a-caching-reverse-proxy

「mod_disk_cache」と呼ばれる同様の apache モジュールがあります。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 サーバーに転送されます。

于 2012-05-22T03:23:04.917 に答える