Skip to content

Commit

Permalink
Change url quoting in boto3 to use python urllib quote
Browse files Browse the repository at this point in the history
  • Loading branch information
danielholmes committed Sep 18, 2018
1 parent cfa413a commit 45d8235
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions storages/backends/s3boto3.py
Expand Up @@ -13,7 +13,7 @@
from django.core.files.storage import Storage
from django.utils.deconstruct import deconstructible
from django.utils.encoding import (
filepath_to_uri, force_bytes, force_text, smart_text,
force_bytes, force_text, smart_text,
)
from django.utils.six.moves.urllib import parse as urlparse
from django.utils.timezone import is_naive, localtime
Expand Down Expand Up @@ -612,7 +612,7 @@ def url(self, name, parameters=None, expire=None):
name = self._normalize_name(self._clean_name(name))
if self.custom_domain:
return "%s//%s/%s" % (self.url_protocol,
self.custom_domain, filepath_to_uri(name))
self.custom_domain, urlparse.quote(name))
if expire is None:
expire = self.querystring_expire

Expand Down
4 changes: 2 additions & 2 deletions tests/test_s3boto3.py
Expand Up @@ -507,11 +507,11 @@ def test_storage_url(self):

def test_generated_url_is_encoded(self):
self.storage.custom_domain = "mock.cloudfront.net"
filename = "whacky & filename.mp4"
filename = "whacky & filename'.mp4"
url = self.storage.url(filename)
parsed_url = urlparse.urlparse(url)
self.assertEqual(parsed_url.path,
"/whacky%20%26%20filename.mp4")
"/whacky%20%26%20filename%27.mp4")
self.assertFalse(self.storage.bucket.meta.client.generate_presigned_url.called)

def test_special_characters(self):
Expand Down

0 comments on commit 45d8235

Please sign in to comment.