From dab0fcc33f1a9f7483b02411118b85ed5523e9c2 Mon Sep 17 00:00:00 2001 From: Terry Howe Date: Mon, 18 Jun 2012 08:16:54 -0600 Subject: [PATCH] Update put_object to accept blocks, and remove deprecation message. --- lib/fog/core/connection.rb | 2 +- lib/fog/hp/requests/storage/put_object.rb | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/fog/core/connection.rb b/lib/fog/core/connection.rb index 95f51c785..7a16931bf 100644 --- a/lib/fog/core/connection.rb +++ b/lib/fog/core/connection.rb @@ -13,7 +13,7 @@ module Fog unless block_given? if (parser = params.delete(:parser)) body = Nokogiri::XML::SAX::PushParser.new(parser) - block = lambda { |chunk, remaining, total| body << chunk } + params[:response_block] = lambda { |chunk, remaining, total| body << chunk } end end diff --git a/lib/fog/hp/requests/storage/put_object.rb b/lib/fog/hp/requests/storage/put_object.rb index a1b9895ab..3a30d7dd0 100644 --- a/lib/fog/hp/requests/storage/put_object.rb +++ b/lib/fog/hp/requests/storage/put_object.rb @@ -8,9 +8,20 @@ module Fog # ==== Parameters # * container<~String> - Name for container, should be < 256 bytes and must not contain '/' # - def put_object(container, object, data, options = {}) + def put_object(container, object, data, options = {}, &block) data = Fog::Storage.parse_data(data) headers = data[:headers].merge!(options) + if block_given? + headers['Transfer-Encoding'] = 'chunked' + headers.delete('Content-Length') + return request( + :request_block => block, + :expects => 201, + :headers => headers, + :method => 'PUT', + :path => "#{Fog::HP.escape(container)}/#{Fog::HP.escape(object)}" + ) + end if headers.has_key?('Transfer-Encoding') headers.delete('Content-Length') end