2011-06-27 52 views
0

假設我有一個URL http://mydomain.com/abc.mp3從那裏我想要複製的音頻文件,並希望把它上傳另一個URL http://another_doamin.com/abc.mp3讀取文件,並將其上傳到另一個遠程位置紅寶石

任何人都可以建議我用紅寶石來做到這一點。

在此先感謝。

+0

您是否擁有another_domain.com的FTP訪問權限? – Skilldrick

+0

權限不是問題。我的許可。 – Ashish

+0

有什麼協議可用?它是HTTP文件上傳? –

回答

1

有很多選項,很大程度上取決於您的應用程序(服務器)的功能。你可能想在你的問題上更精確一些。在考慮「從一個位置讀取文件並將其上傳到另一個位置」時,下面是我心中的一些想法:

  1. 使用FTP。直接從一個域到另一個域(如果其中一個有FTP服務器並且你有shell訪問另一個域),或者通過第三臺機器(使用http下載並使用ftp上傳,假設另一個域有FTP服務器)。 Here is some documentation您可能會覺得有用,它包含一個示例。這可能是最簡單和最直接的選擇。
  2. 通過HTML表單提交文件,假設某些內容(如Rails應用程序或甚至是PHP腳本)可以在處處理另一個域的請求。您可以使用HTTP來做到這一點,如documented here,帶有示例,answered in this thread
  3. 從使用中的地址另一個域轉發到我的域名地址,假設你有過在另一個域運行的應用程序的控制。這比Ruby更多Rails。它不會使您的文件從一個域轉移到另一個域,而是將來電從一個地址重定向到另一個地址。
  4. 獲得(以1,2,wget ......)從我的域名文件而產生的頁另一個域,假定在3.再次,這是比純Ruby多個軌道。這將在每次請求時從一個域獲取文件的副本。
+0

或者另一種選擇:你可以base64對文件進行編碼並通過Web服務發送。 – Flukey

+0

我想知道如何在ruby中上傳遠程位置的文件:) – Ashish

+0

@Ashish:上傳「某處」文件意味着「某處」必須接受此類操作。如果它接受FTP,請使用FTP。如果它接受HTTP POST請求,請使用HTTP POST請求(更新我的答案以包含指向相關問題的鏈接)。如果它接受HTTP GET請求,則base64對該文件進行編碼並使用HTTP GET請求(將編碼的字符串作爲參數傳遞)。不知道什麼是允許的上傳方式,不可能告訴*如何做*。 – Sorrow