我通過AJAX將文件上傳到Amazon S3(使用瀏覽器File API並將實際上傳腳本作爲iframe存儲在亞馬遜S3上以繞過亞馬遜S3跨站點的問題,禮貌jquery文件上傳的想法)。我有這個工作,它適用於小文件(< 50 MB左右)。不過,我正在尋找在Amazon S3上存儲非常大的文件。我想存儲配置好的虛擬機,大小可能超過10 GB。將極大(10+ GB)文件分割並上傳到Amazon S3
從我對HTML5文件API的理解中,可以將大文件分塊成小型的客戶端並上傳。然後服務器代碼負責將這些文件連接在一起並將文件移動到S3。我理解這個概念,但我不確定最佳實施。
我使用Heroku作爲應用服務器,通常我會直接將文件上傳到Amazon S3,完全跳過Heroku的服務器。但是,如果我將上傳塊分成小塊,那麼在將它們放入S3之前,必須先加入一些代碼才能加入。但Heroku對於可以使用多少數據有一定的限制,我不認爲加入10 GB文件可以在服務器上有效地發揮作用(不是100%確定但可疑)。
所以我當前的想法是,我必須在我的應用程序發佈上傳部件的Amazon EC2服務器上安裝Web服務應用程序。 EC2應用程序然後負責加入上傳部分並將最終加入的文件放入S3中。將文件加載到S3後,S3會向Heroku上託管的原始應用程序發送響應,然後創建一個指向S3中存儲文件的資源。
是否有任何現實的方法來解決有一個單獨的EC2服務器加入文件?在EC2和S3之間發送文件沒有任何費用,但我不想維護2個應用程序來完成我想要的功能(Heroku上的主應用程序和EC2上的文件加入應用程序)。
你真的確定要做到這一點通過瀏覽器?除了複雜性之外,上傳10GB +文件意味着將頁面打開一段時間。這是現實的(如果頁面已關閉)?你不是更好的做一個小應用程序dat可以從桌面訪問S3(或者甚至買一個)? – Roger 2012-08-22 07:11:35
@羅傑爾你是對的,它可能不是最好的解決方案(如果是一個可行的解決方案)。我試圖避免在客戶端安裝任何東西,但對於非常大的文件看起來不太現實。你提到的路線幾乎是我傾向的路徑。 – 2012-08-22 11:50:54
是的。根據平臺,您可以使用例如傳輸(在Mac上即時通訊)並創建一個液滴(拖放文件以上傳)。花費一點錢,但以小時數計算,你無法打敗;-) – Roger 2012-08-22 12:25:39