繁体   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