[WIKI-520] fix: update content disposition handling in asset download endpoints (#7380)
This commit is contained in:
parent
62065a6ebb
commit
ac928f263a
2 changed files with 8 additions and 2 deletions
|
|
@ -740,7 +740,8 @@ class WorkspaceAssetDownloadEndpoint(BaseAPIView):
|
|||
storage = S3Storage(request=request)
|
||||
signed_url = storage.generate_presigned_url(
|
||||
object_name=asset.asset.name,
|
||||
disposition=f"attachment; filename={asset.asset.name}",
|
||||
disposition="attachment",
|
||||
filename=asset.attributes.get("name", uuid.uuid4().hex),
|
||||
)
|
||||
|
||||
return HttpResponseRedirect(signed_url)
|
||||
|
|
@ -767,7 +768,8 @@ class ProjectAssetDownloadEndpoint(BaseAPIView):
|
|||
storage = S3Storage(request=request)
|
||||
signed_url = storage.generate_presigned_url(
|
||||
object_name=asset.asset.name,
|
||||
disposition=f"attachment; filename={asset.asset.name}",
|
||||
disposition="attachment",
|
||||
filename=asset.attributes.get("name", uuid.uuid4().hex),
|
||||
)
|
||||
|
||||
return HttpResponseRedirect(signed_url)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# Python imports
|
||||
import os
|
||||
import uuid
|
||||
|
||||
# Third party imports
|
||||
import boto3
|
||||
|
|
@ -101,6 +102,9 @@ class S3Storage(S3Boto3Storage):
|
|||
|
||||
def _get_content_disposition(self, disposition, filename=None):
|
||||
"""Helper method to generate Content-Disposition header value"""
|
||||
if filename is None:
|
||||
filename = uuid.uuid4().hex
|
||||
|
||||
if filename:
|
||||
# Encode the filename to handle special characters
|
||||
encoded_filename = quote(filename)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue