From ddabb17ee93f954de95a5e85e083da924b574061 Mon Sep 17 00:00:00 2001 From: geemus Date: Thu, 7 Oct 2010 11:10:01 -0700 Subject: [PATCH] [rackspace][storage] allow for passing options to specify headers on put --- lib/fog/rackspace/models/storage/file.rb | 4 ++-- lib/fog/rackspace/requests/storage/put_object.rb | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/fog/rackspace/models/storage/file.rb b/lib/fog/rackspace/models/storage/file.rb index 75ffef316..07847f109 100644 --- a/lib/fog/rackspace/models/storage/file.rb +++ b/lib/fog/rackspace/models/storage/file.rb @@ -41,9 +41,9 @@ module Fog end end - def save + def save(options = {}) requires :body, :directory, :key - data = connection.put_object(directory.name, @key, @body) + data = connection.put_object(directory.name, @key, @body, options) @etag = data.headers['ETag'] true end diff --git a/lib/fog/rackspace/requests/storage/put_object.rb b/lib/fog/rackspace/requests/storage/put_object.rb index f7da63e1e..a7f4687c1 100644 --- a/lib/fog/rackspace/requests/storage/put_object.rb +++ b/lib/fog/rackspace/requests/storage/put_object.rb @@ -8,12 +8,13 @@ module Fog # ==== Parameters # * container<~String> - Name for container, should be < 256 bytes and must not contain '/' # - def put_object(container, object, data) + def put_object(container, object, data, options = {}) data = parse_data(data) + headers = data[:headers].merge!(options) response = storage_request( :body => data[:body], :expects => 201, - :headers => data[:headers], + :headers => headers, :method => 'PUT', :path => "#{CGI.escape(container)}/#{CGI.escape(object)}" ) @@ -24,7 +25,7 @@ module Fog class Mock - def put_object(container, object, data) + def put_object(container, object, data, options = {}) Fog::Mock.not_implemented end