diff --git a/lib/carrierwave_direct/uploader/direct_url.rb b/lib/carrierwave_direct/uploader/direct_url.rb index 0304d46..3689cd0 100644 --- a/lib/carrierwave_direct/uploader/direct_url.rb +++ b/lib/carrierwave_direct/uploader/direct_url.rb @@ -5,10 +5,9 @@ module DirectUrl def direct_fog_url(options = {}) fog_uri = CarrierWave::Storage::Fog::File.new(self, CarrierWave::Storage::Fog.new(self), nil).public_url if options[:with_path] - uri = URI.parse(fog_uri.chomp('/')) - path = "/#{key}" - uri.path += URI.escape(path) - fog_uri = uri.to_s + fog_uri = fog_uri.chomp('/') + path = URI.escape("/#{key}") + fog_uri = "#{fog_uri}#{path}" end fog_uri end diff --git a/spec/data/sample_data.rb b/spec/data/sample_data.rb index 5140cb8..6dbf801 100644 --- a/spec/data/sample_data.rb +++ b/spec/data/sample_data.rb @@ -1,6 +1,6 @@ SAMPLE_DATA = { :path => "upload_dir/bliind.exe", - :path_with_special_chars => "upload_dir/some file & blah.exe", + :path_with_special_chars => "uploads/7cf36992-300b-4c54-8f74-c22bd76b69a6/Financial Module - Money Management - What is a Budget and Why is it Important?.pdf", :key => "some key", :guid => "guid", :store_dir => "store_dir",