Method: Fog::OpenStack::Storage::Mock#put_object

Defined in:
lib/fog/openstack/storage/requests/put_object.rb

#put_object(container, object, data, options = {}, &block) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/fog/openstack/storage/requests/put_object.rb', line 43

def put_object(container, object, data, options = {}, &block)
  dgst = Digest::MD5.new
  if block_given?
    Kernel.loop do
      chunk = yield
      break if chunk.empty?
      dgst.update chunk
    end
  elsif data.kind_of?(String)
    dgst.update data
  else
    dgst.file data
  end
  response = Excon::Response.new
  response.status = 201
  response.body = ''
  response.headers = {'ETag' => dgst.hexdigest}
  response
end