我有一个网站,它将用url2png.com生成截图。我不喜欢这样的事实,每30天,它需要重新呈现你的所有屏幕截图,计数接近你的极限。
理想情况下,我想生成它们,当它完成时,我想将它保存到我自己的服务器上,然后在那里查看它。
我想我甚至不知道从哪里开始,特别是..
如何让它们进入某种队列,直到图像呈现并返回(我以前使用过redis/resque/resque戋pool,但这非常复杂,我不喜欢在这个应用程序上走非常复杂的路线,因为我认为很多人都会使用它。我喜欢更简单的东西,不容易搞砸)
如何从rails中实际获取图像
如何将图像存储到具有特定文件名的特定目录
如何在我的实际应用程序中引用资产
如何从模型/控制器视图处理屏幕截图。它应该只是分配给资源的一个额外属性,比如resource.screenshot_url吗?
他们确实提供了一个ruby gem,但我不相信我会使用它,因为它的唯一选择是从他们的服务器获取图像,相反,我将使用他们的url格式从中获取图像,然后以某种方式生成我自己的url。http://api.url2png.com/v3/<API_KEY>/<TOKEN>/<BOUNDING-BOX>/<URL>
最佳答案
url2png api相当快,新的请求会立即处理,通常在10秒或更短的时间内返回png。
跟踪每一个请求和轮询状态的系统可能是过分了。如果你想找一份背景工作,那就另当别论了。
第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服务器上。
关于ruby-on-rails - 将url2png屏幕截图保存到自己的服务器的最佳方法是?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10694117/