diff --git a/lib/fog/core.rb b/lib/fog/core.rb index 6fed5576b..2c5fe2e06 100644 --- a/lib/fog/core.rb +++ b/lib/fog/core.rb @@ -8,6 +8,7 @@ $LOAD_PATH.unshift __LIB_DIR__ unless require 'rubygems' require 'base64' require 'cgi' +require 'uri' require 'excon' require 'fileutils' require 'formatador' diff --git a/lib/fog/storage/requests/rackspace/delete_container.rb b/lib/fog/storage/requests/rackspace/delete_container.rb index e83740c42..da161a2c7 100644 --- a/lib/fog/storage/requests/rackspace/delete_container.rb +++ b/lib/fog/storage/requests/rackspace/delete_container.rb @@ -12,7 +12,7 @@ module Fog response = request( :expects => 204, :method => 'DELETE', - :path => CGI.escape(name) + :path => URI.escape(name) ) response end diff --git a/lib/fog/storage/requests/rackspace/delete_object.rb b/lib/fog/storage/requests/rackspace/delete_object.rb index 5f3c12e01..55df1e29c 100644 --- a/lib/fog/storage/requests/rackspace/delete_object.rb +++ b/lib/fog/storage/requests/rackspace/delete_object.rb @@ -13,7 +13,7 @@ module Fog response = request( :expects => 204, :method => 'DELETE', - :path => "#{CGI.escape(container)}/#{CGI.escape(object)}" + :path => "#{URI.escape(container)}/#{URI.escape(object)}" ) response end diff --git a/lib/fog/storage/requests/rackspace/get_container.rb b/lib/fog/storage/requests/rackspace/get_container.rb index 95b867d12..9aad6162e 100644 --- a/lib/fog/storage/requests/rackspace/get_container.rb +++ b/lib/fog/storage/requests/rackspace/get_container.rb @@ -33,7 +33,7 @@ module Fog response = request( :expects => 200, :method => 'GET', - :path => container, + :path => URI.escape(container), :query => {'format' => 'json'}.merge!(options) ) response diff --git a/lib/fog/storage/requests/rackspace/get_object.rb b/lib/fog/storage/requests/rackspace/get_object.rb index 346aa525d..daa3292c0 100644 --- a/lib/fog/storage/requests/rackspace/get_object.rb +++ b/lib/fog/storage/requests/rackspace/get_object.rb @@ -14,7 +14,7 @@ module Fog :block => block, :expects => 200, :method => 'GET', - :path => "#{CGI.escape(container)}/#{CGI.escape(object)}" + :path => "#{URI.escape(container)}/#{URI.escape(object)}" }, false, &block) response end diff --git a/lib/fog/storage/requests/rackspace/head_container.rb b/lib/fog/storage/requests/rackspace/head_container.rb index 046646de4..993ae8103 100644 --- a/lib/fog/storage/requests/rackspace/head_container.rb +++ b/lib/fog/storage/requests/rackspace/head_container.rb @@ -17,7 +17,7 @@ module Fog response = request( :expects => 204, :method => 'HEAD', - :path => container, + :path => URI.escape(container), :query => {'format' => 'json'} ) response diff --git a/lib/fog/storage/requests/rackspace/head_object.rb b/lib/fog/storage/requests/rackspace/head_object.rb index 8861c6c9a..640ffc6ca 100644 --- a/lib/fog/storage/requests/rackspace/head_object.rb +++ b/lib/fog/storage/requests/rackspace/head_object.rb @@ -13,7 +13,7 @@ module Fog response = request({ :expects => 200, :method => 'GET', - :path => "#{CGI.escape(container)}/#{CGI.escape(object)}" + :path => "#{URI.escape(container)}/#{URI.escape(object)}" }, false) response end diff --git a/lib/fog/storage/requests/rackspace/put_container.rb b/lib/fog/storage/requests/rackspace/put_container.rb index 5883499de..1033bfec6 100644 --- a/lib/fog/storage/requests/rackspace/put_container.rb +++ b/lib/fog/storage/requests/rackspace/put_container.rb @@ -12,7 +12,7 @@ module Fog response = request( :expects => [201, 202], :method => 'PUT', - :path => CGI.escape(name) + :path => URI.escape(name) ) response end diff --git a/lib/fog/storage/requests/rackspace/put_object.rb b/lib/fog/storage/requests/rackspace/put_object.rb index 51c69b8bb..128c24d73 100644 --- a/lib/fog/storage/requests/rackspace/put_object.rb +++ b/lib/fog/storage/requests/rackspace/put_object.rb @@ -16,7 +16,7 @@ module Fog :expects => 201, :headers => headers, :method => 'PUT', - :path => "#{CGI.escape(container)}/#{CGI.escape(object)}" + :path => "#{URI.escape(container)}/#{URI.escape(object)}" ) response end