fix: support legacy presign proxy upload URLs

This commit is contained in:
Lan
2026-06-03 02:57:29 +08:00
parent 9976d014d9
commit 85d402c0cd
2 changed files with 21 additions and 7 deletions
+20 -7
View File
@@ -549,6 +549,14 @@ presign_api = APIRouter(prefix="/presign", tags=["预签名上传"])
PRESIGN_SESSION_EXPIRES = 900 # 15分钟 PRESIGN_SESSION_EXPIRES = 900 # 15分钟
def build_proxy_upload_urls(upload_id: str) -> dict:
proxy_upload_url = f"/presign/upload/proxy/{upload_id}"
return {
"proxy_upload_url": proxy_upload_url,
"legacy_proxy_upload_url": f"/api{proxy_upload_url}",
}
async def _get_valid_session( async def _get_valid_session(
upload_id: str, expected_mode: Optional[str] = None upload_id: str, expected_mode: Optional[str] = None
) -> PresignUploadSession: ) -> PresignUploadSession:
@@ -588,7 +596,8 @@ async def presign_upload_init(
) )
mode = "direct" if presigned_url else "proxy" mode = "direct" if presigned_url else "proxy"
upload_url = presigned_url or f"/api/presign/upload/proxy/{upload_id}" proxy_urls = build_proxy_upload_urls(upload_id)
upload_url = presigned_url or proxy_urls["proxy_upload_url"]
await PresignUploadSession.create( await PresignUploadSession.create(
upload_id=upload_id, upload_id=upload_id,
@@ -602,13 +611,17 @@ async def presign_upload_init(
) )
ip_limit["upload"].add_ip(ip) ip_limit["upload"].add_ip(ip)
detail = {
"upload_id": upload_id,
"upload_url": upload_url,
"mode": mode,
"expires_in": PRESIGN_SESSION_EXPIRES,
}
if mode == "proxy":
detail.update(proxy_urls)
return APIResponse( return APIResponse(
detail={ detail=detail
"upload_id": upload_id,
"upload_url": upload_url,
"mode": mode,
"expires_in": PRESIGN_SESSION_EXPIRES,
}
) )
+1
View File
@@ -151,6 +151,7 @@ register_tortoise(
app.include_router(share_api) app.include_router(share_api)
app.include_router(chunk_api) app.include_router(chunk_api)
app.include_router(presign_api) app.include_router(presign_api)
app.include_router(presign_api, prefix="/api")
app.include_router(admin_api) app.include_router(admin_api)