class S3::Request
Class responsible for sending chunked requests properly. Net::HTTPGenericRequest has hardcoded chunk_size, so we inherit the class and override chunk_size.
Public Class Methods
new(chunk_size, m, reqbody, resbody, path, initheader = nil)
click to toggle source
Calls superclass method
# File lib/s3/request.rb, line 6 def initialize(chunk_size, m, reqbody, resbody, path, initheader = nil) @chunk_size = chunk_size super(m, reqbody, resbody, path, initheader) end
Private Instance Methods
send_request_with_body_stream(sock, ver, path, f)
click to toggle source
# File lib/s3/request.rb, line 13 def send_request_with_body_stream(sock, ver, path, f) unless content_length() or chunked? raise ArgumentError, "Content-Length not given and Transfer-Encoding is not `chunked'" end supply_default_content_type write_header sock, ver, path if chunked? while s = f.read(@chunk_size) sock.write(sprintf("%x\r\n", s.length) << s << "\r\n") end sock.write "0\r\n\r\n" else while s = f.read(@chunk_size) sock.write s end end end