【发布时间】:2018-09-21 06:05:26
【问题描述】:
我的服务器上有大文件,需要通过 http(s) 将它们发送到另一台服务器。 我用rest-client gem 它适用于小文件,但 2+Gb 文件会导致错误。
当我尝试使用 https 时,我得到了这个错误
RangeError: integer 2325958991 too big to convert to `int'
用本地http测试得到这个错误
2.3.3 :001 > RestClient.post 'http://localhost:4567/upload', :my_file => File.open("test_file2G", 'rb')
Errno::EPIPE: Broken pipe
from /home/rubydev/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/net/protocol.rb:211:in `write'
from /home/rubydev/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/net/protocol.rb:211:in `write0'
from /home/rubydev/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/net/protocol.rb:185:in `block in write'
from /home/rubydev/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/net/protocol.rb:202:in `writing'
from /home/rubydev/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/net/protocol.rb:184:in `write'
from /home/rubydev/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/net/http/generic_request.rb:188:in `send_request_with_body'
from /home/rubydev/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/net/http/generic_request.rb:121:in `exec'
对于我使用 sinatra 服务器的测试,它成功接收大文件,例如 curl。
更新 流式上传会导致同样的错误
【问题讨论】:
-
查看直接上传到云端。
标签: ruby-on-rails ruby file-upload rest-client