Skip to content

Commit

Permalink
Fix content disposition
Browse files Browse the repository at this point in the history
  • Loading branch information
tillprochaska committed Apr 17, 2024
1 parent bd68c29 commit 257a8ce
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
2 changes: 1 addition & 1 deletion servicelayer/archive/gs.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ def generate_url(self, content_hash, file_name=None, mime_type=None, expire=None
return
disposition = None
if file_name is not None:
disposition = "inline; filename=%s" % file_name
disposition = "attachment; filename=%s" % file_name
if expire is None:
expire = datetime.utcnow() + timedelta(seconds=self.TIMEOUT)
return blob.generate_signed_url(
Expand Down
2 changes: 1 addition & 1 deletion servicelayer/archive/s3.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ def generate_url(self, content_hash, file_name=None, mime_type=None, expire=None
if mime_type is not None:
params["ResponseContentType"] = mime_type
if file_name is not None:
disposition = "inline; filename=%s" % file_name
disposition = "attachment; filename=%s" % file_name
params["ResponseContentDisposition"] = disposition
expires_in = self.TIMEOUT
if expire is not None:
Expand Down
27 changes: 23 additions & 4 deletions tests/archive/test_s3.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from unittest import TestCase
from urllib.parse import urlparse, parse_qs

from moto import mock_s3

Expand Down Expand Up @@ -30,10 +31,28 @@ def test_basic_archive_with_checksum(self):
assert checksum_ == out, (checksum_, out)

def test_generate_url(self):
out = self.archive.archive_file(self.file)
url = self.archive.generate_url(out)
# assert False, url
assert url is not None, url
content_hash = self.archive.archive_file(self.file)
url = self.archive.generate_url(content_hash)
assert url is not None

url = urlparse(url)
assert url.netloc == "foo.s3.amazonaws.com"

def test_generate_url_headers(self):
content_hash = self.archive.archive_file(self.file)
url = self.archive.generate_url(
content_hash,
file_name="test.txt",
mime_type="text/plain",
)
assert url is not None

url = urlparse(url)
query = parse_qs(url.query)
assert query["response-content-type"] == ["text/plain"]
assert query["response-content-disposition"] == [
"attachment; filename=test.txt"
]

def test_publish_file(self):
assert self.archive.can_publish
Expand Down

0 comments on commit 257a8ce

Please sign in to comment.