Class: Net::HTTPGenericRequest

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

Instance Method Summary collapse

Instance Method Details

#chunk_sizeObject



377
378
379
# File 'lib/aliyun/oss/extensions.rb', line 377

def chunk_size
  1048576 # 1 megabyte
end

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

Raises:

  • (ArgumentError)


358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
# File 'lib/aliyun/oss/extensions.rb', line 358

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