Потоковая передача данных в запросе Ruby net / http PUT - PullRequest
0 голосов
/ 04 февраля 2019

В Ruby-doc Net / HTTP есть подробный пример потоковых тел ответов - он применяется при попытке загрузить большой файл.

Я ищу эквивалентныйфрагмент кода для загрузки файла через PUT.Потратил немало времени, пытаясь заставить код работать без удачи.Я думаю, что мне нужно реализовать определенный интерфейс и передать его в request.body_stream

Мне нужно Потоковое , потому что я хочу изменить содержимое файла во время его загрузки, поэтому я хочуиметь доступ к буферизованным чанкам во время загрузки.Я бы с удовольствием использовал библиотеку, такую ​​как http.rb или rest-client, если бы я мог использовать потоковую передачу.

Заранее спасибо!Для справки: рабочая не потоковая версия


    uri = URI("http://localhost:1234/upload")

    Net::HTTP.start(uri.host, uri.port) do |http|
      request = Net::HTTP::Put.new uri

      File.open("/home/files/somefile") do |f|
        request.body = f.read()
      end

      # Ideally I would need to use **request.body_stream** instead of **body** to get streaming

      http.request request do |response|
        response.read_body do |result|
          # display the operation result   
          puts result
        end
      end
    end
...