Fix presigned URL encoding issue

This commit is contained in:
2025-12-03 12:08:02 +08:00
parent f160827b41
commit 5d161c1d92

View File

@@ -6,7 +6,7 @@ import uuid
import psutil import psutil
import shutil import shutil
from typing import Any from typing import Any
from urllib.parse import urlparse from urllib.parse import quote, urlparse
import boto3 import boto3
import requests import requests
@@ -796,7 +796,8 @@ def object_presign(bucket_name: str, object_key: str):
api_base = current_app.config.get("API_BASE_URL") or "http://127.0.0.1:5000" api_base = current_app.config.get("API_BASE_URL") or "http://127.0.0.1:5000"
api_base = api_base.rstrip("/") api_base = api_base.rstrip("/")
url = f"{api_base}/presign/{bucket_name}/{object_key}" encoded_key = quote(object_key, safe="")
url = f"{api_base}/presign/{bucket_name}/{encoded_key}"
# Use API base URL for forwarded headers so presigned URLs point to API, not UI # Use API base URL for forwarded headers so presigned URLs point to API, not UI
parsed_api = urlparse(api_base) parsed_api = urlparse(api_base)