Закачивать большие (2гб +) файлы по рельсам

У меня есть большие файлы на моем сервере, и мне нужно отправить их на другой сервер по http (s). Я использую жемчужина отдыха-клиента Он отлично работает с небольшими файлами, но файлы размером 2+ Гб вызывают ошибку.

Когда я попробовал с 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.

ОБНОВИТЬ Потоковая загрузка вызывает ту же ошибку

Вы пробовали стриминг? github.com/rest-client/rest-client#streaming-request-payload

Yevgeniy Anfilofyev 11.04.2018 13:22

изучите возможность прямой загрузки в облако.

Nithin 11.04.2018 14:15
0
2
176
1

Ответы 1

Gem бордюр успешно отправляет большие файлы

Другие вопросы по теме