2011-04-26 61 views
0

我目前正在將我的項目從PHP(codeigniter)遷移到Rails3,這太神奇了。 但我是一個rails/ruby​​新手,所以我遇到了一個我不知道如何解決的問題。Rails3 - 從遠程服務器上下載文件並將其上傳到S3

我從我的網站(A)從一個特定的網站(B)獲得新的東西。它的工作原理是這樣的:

  1. 在站點B上頁我要提交給我的地盤我點擊一個按鈕上。
  2. 站點B向站點A上的腳本發出POST請求,並附帶該頁面的標識符。
  3. 我拿這個ID,並使用CURL發回POST請求返回到站點B.
  4. 站點B返回給我一個包含文件鏈接的JSON訂閱源。
  5. 然後我用CURL下載帶有該ID的文件。

對不起,如果解釋有點混亂。

對於步驟1和2我假設,我必須在某些控制器中創建POST路由和方法。 但其餘的對我來說並不那麼清楚。

此外,在PHP項目中,我託管在同一臺服務器上的文件。現在我用heroku,所以我需要把這些文件放到S3。

回答

1

更新:在再次讀取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本身沒有設置或配置其他然後幾行你上傳的文件。

+0

我還沒有嘗試過,但我相信它會做。謝謝,berkes – bassneck 2011-04-26 20:47:24

相關問題