lib/fog/storage/google_json/utils.rb in fog-google-1.13.0 vs lib/fog/storage/google_json/utils.rb in fog-google-1.14.0
- old
+ new
@@ -18,12 +18,13 @@
private
def host_path_query(params, expires)
params[:headers]["Date"] = expires.to_i
# implementation from CGI.escape, but without ' ' to '+' conversion
- params[:path] = params[:path].b.gsub(/([^a-zA-Z0-9_.\-~]+)/) do |m|
+ params[:path] = params[:path].b.gsub(/([^a-zA-Z0-9_.\-~]+)/) { |m|
'%' + m.unpack('H2' * m.bytesize).join('%').upcase
- end
+ }.gsub("%2F", "/")
+
query = []
if params[:query]
filtered = params[:query].reject { |k, v| k.nil? || v.nil? }
query = filtered.map { |k, v| [k.to_s, Fog::Google.escape(v)].join("=") }