Rails3 - 从远程服务器上下载文件并将其上传到S3
问题描述:
我目前正在将我的项目从PHP(codeigniter)迁移到Rails3,这太神奇了。 但我是一个rails/ruby新手,所以我遇到了一个我不知道如何解决的问题。Rails3 - 从远程服务器上下载文件并将其上传到S3
我从我的网站(A)从一个特定的网站(B)获得新的东西。它的工作原理是这样的:
- 在站点B上页我要提交给我的地盘我点击一个按钮上。
- 站点B向站点A上的脚本发出POST请求,并附带该页面的标识符。
- 我拿这个ID,并使用CURL发回POST请求返回到站点B.
- 站点B返回给我一个包含文件链接的JSON订阅源。
- 然后我用CURL下载带有该ID的文件。
对不起,如果解释有点混乱。
对于步骤1和2我假设,我必须在某些控制器中创建POST路由和方法。 但其余的对我来说并不那么清楚。
此外,在PHP项目中,我托管在同一台服务器上的文件。现在我用heroku,所以我需要把这些文件放到S3。
答
更新:在再次读取Q时,我发现远程文件必须从远程位置发布到rails应用程序,而不是从用户提供的url发布。 Carrierwave很可能仍然可以解决这个问题,但是我没有这方面的经验。
这很简单,carrierwave。
一旦设置,carrierwave将检测到文件上传或远程文件的路径并导入它。
<%= form_for @user, :html => {:multipart => true} do |f| %>
<p>
<label>My Avatar URL:</label>
<%= image_tag(@user.avatar_url) if @user.avatar? %>
<%= f.text_field :remote_avatar_url %>
</p>
<% end %>
S3存储是原生支持,低谷fog,至极需要carrierwave本身没有设置或配置其他然后几行你上传的文件。
我还没有尝试过,但我相信它会做。谢谢,berkes – bassneck 2011-04-26 20:47:24