Ruby Net:HTTP chunked transfer
require 'uri' | |
require 'net/http' | |
class Chunked | |
def initialize(data, chunk_size) | |
@size = chunk_size | |
if data.respond_to? :read | |
@file = data | |
end | |
end | |
def read(foo) | |
if @file | |
@file.read(@size) | |
end | |
end | |
def eof! | |
@file.eof! | |
end | |
def eof? | |
@file.eof? | |
end | |
end | |
parsed = URI::parse(@storage_url) | |
conn = Net::HTTP.new(parsed.host, parsed.port) | |
fp = File::open('test.txt') | |
parsed.path += '/foo/test.txt' | |
chunked = Chunked.new(fp, 5) | |
request = Net::HTTP::Put.new parsed.request_uri, {'x-auth-token' => @auth_token, 'Transfer-Encoding' => 'chunked', 'content-type' => 'text/plain'} | |
request.body_stream = chunked | |
conn.start do |http| | |
http.request(request) | |
end | |
fp.close |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Not work for me. Puma can not parse the request.