ruby-on-rails - 如何将大于 5GB 的文件上传到 Amazon S3?

标签 ruby-on-rails ruby ruby-on-rails-3

我目前正在使用带有 Carrierwave gem 的 Rails 3.2 将文件上传到 Amazon S3。现在我需要能够处理用户提交的大于 5GB 的文件,同时仍然使用 Carrierwave gem。 Carrierwave 或 Fog 是否有任何其他 gem 或分支可以处理 5GB 以上的文件上传到 S3?

编辑:我不想重写一个完整的 Rails 上传解决方案,所以像这样的链接没有帮助:https://gist.github.com/908875 .

最佳答案

我想出了如何做到这一点,并且现在可以正常工作了。在正确的 config/environment 文件中,添加以下内容以将文件以 100MB block 的形式发送到 Amazon S3:

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

由于 fog gem 内置了分段上传(感谢 Veraticus 指出),适当的配置属性只需要通过 Carrierwave 传递到 fog 中。发送到 S3 时,我经常收到 Connection reset by peer (Errno::ECONNRESET) 错误,因此可能需要重试部分上传。

关于ruby-on-rails - 如何将大于 5GB 的文件上传到 Amazon S3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11781775/

相关文章:

Ruby 的 one liner "and return"

ruby-on-rails - CanCan 的用户授权 : NoMethodError

ruby-on-rails - has_one :through => :belongs_to produces bad query

ruby-on-rails - 为什么在安装 Ruby 1.9.3 时出现 404 错误?

ruby-on-rails - Rails 5.1 中的 skip_before_action 回调和继承

ruby - 我只想用 Ruby 和 Prawn 写一个简单的 µ

ruby-on-rails - 从 ActiveRecord 中的一系列 id 中搜索

ruby-on-rails - 当我从 Rails Guide 添加 Far-Future Expires 子句时,Apache 崩溃

ruby-on-rails - ActiveRecord 有两个关联

ruby-on-rails - 我怎样才能从我的开发和测试环境中得到空气制动器?