簡體   English   中英

如何將大於5GB的文件上傳到Amazon S3?

[英]How can I upload files larger than 5GB to Amazon S3?

我目前正在使用帶有Carrierwave gem的Rails 3.2將文件上傳到Amazon S3。 現在我需要能夠處理大於5GB的用戶提交的文件,同時仍然使用Carrierwave gem。 Carrierwave或Fog還有其他寶石或分支可以處理上傳到S3的5GB +文件嗎?

編輯:我不想重寫完整的Rails上傳解決方案,所以這樣的鏈接無濟於事: https//gist.github.com/908875

您想使用S3的分段上傳功能 有用的是,Fog確實可以處理多部分S3上傳,正如您在此拉取請求中看到的那樣

不幸的是,Carrierwave似乎沒有內置的功能來正確使用它。 因此,您需要手動修改Carrierwave或者進入Fog以正確上傳此文件。

我想出了如何做到這一點,並讓它現在工作。 在正確的config/environment文件中,添加以下內容以將100MB塊中的文件發送到Amazon S3:

CarrierWave.configure do |config|
  config.fog_attributes = { :multipart_chunk_size => 104857600 }
end

由於霧寶石內置了多部分上傳(感謝Veraticus指出它),因此需要通過Carrierwave將適當的配置屬性傳遞到霧中。 當發送到S3時,我Connection reset by peer (Errno::ECONNRESET)錯誤接收到頻繁的Connection reset by peer (Errno::ECONNRESET) ,因此可能必須重試部分上載。

在上傳之前,您需要將文件分成小塊。

看看以下內容:

http://www.ruby-forum.com/topic/1282369

http://joemiller.me/2011/02/18/client-support-for-amazon-s3-multipart-uploads-files-5gb/

無論哪種方式,您都需要拆分文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM