Tal*_*boy 2 ruby ruby-on-rails image ruby-on-rails-3 ruby-on-rails-3.1
我有一个网站,它将使用url2png.com生成屏幕截图.我不喜欢这样一个事实:它需要每30天重新渲染一次你的截图,并计入你的限制.
理想情况下,我想生成它们,当它完成时,我想将它保存到我自己的服务器,然后在那里查看它.
我想我甚至不确定从哪里开始,特别是......
如何让他们进入某种队列,这种队列将继续工作,直到渲染和返回图像为止(之前我使用过redis/resque/resque_pool,但这非常复杂,我觉得在这个应用程序上采用非常复杂的路径是不舒服的,因为我认为它会被很多人使用.我喜欢更简单的东西,而不是那么容易搞砸了)
如何从rails实际获取图像
如何将图像存储到具有特定文件名的特定目录
如何在我的实际应用程序中引用资产
如何处理模型/控制器视图中的屏幕截图.它应该只是一个额外的属性分配给资源,像Resource.screenshot_url?
他们确实提供了一个Ruby宝石,但我不相信我会使用它,因为它唯一的选择是从他们的服务器获取图像,而不是我将使用他们的URL格式来获取图像,然后以某种方式生成我自己的网址.
http://api.url2png.com/v3/<API_KEY>/<TOKEN>/<BOUNDING-BOX>/<URL>
小智 5
URL2PNG api相当快,新请求立即处理,通常在10秒或更短时间内返回png.
跟踪每个请求和轮询状态的系统可能有点过分.如果您正在寻找后台工作,那就是另一回事了.
部件2,3,4和5将由回形针宝石轻松处理.我建议从这里开始:通过paperclip从URL保存图像
我首选的解决方案是缓存反向代理. https://serverfault.com/questions/30705/how-to-set-up-nginx-as-a-caching-reverse-proxy
有一个类似的apache模块叫做"mod_disk_cache".因人而异. http://httpd.apache.org/docs/2.2/mod/mod_disk_cache.html
工作原理:您的应用会向我们发出请求
http://url2png.yourdomain.com/v3/<API_KEY>/<TOKEN>/<BOUNDING-BOX>/<URL>
Run Code Online (Sandbox Code Playgroud)
代理将检查请求是否在缓存中.如果未找到,请求将转发到url2png.com服务器.