Class: Net::HTTPGenericRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/aliyun/oss/extensions.rb

Instance Method Summary collapse

Instance Method Details

#chunk_sizeObject



336
337
338
# File 'lib/aliyun/oss/extensions.rb', line 336

def chunk_size
  1048576 # 1 megabyte
end

#send_request_with_body_stream(sock, ver, path, f) ⇒ Object

Raises:

  • (ArgumentError)


317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
# File 'lib/aliyun/oss/extensions.rb', line 317

def send_request_with_body_stream(sock, ver, path, f)
  raise ArgumentError, "Content-Length not given and Transfer-Encoding is not `chunked'" unless content_length() or chunked?
  unless content_type()
    warn 'net/http: warning: Content-Type did not set; using application/x-www-form-urlencoded' if $VERBOSE
    set_content_type 'application/x-www-form-urlencoded'
  end
  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