add dowm;pad

main
Cizz22 4 months ago
parent 993803b295
commit 1500e40d3f

@ -12,7 +12,7 @@ from src.config import WINDOWS_AEROS_BASE_URL
from src.database.core import DbSession
from src.database.service import CommonParameters
from src.models import StandardResponse
from src.aeros_utils import aeros_post
from .schema import AerosProjectInput, AerosMetadata, OverhaulScheduleCreate, OverhaulScheduleUpdate
from .service import import_aro_project, fetch_aro_record, reset_project, create, update, delete
@ -48,39 +48,41 @@ async def forward_download(db_session: DbSession):
project = data.scalar_one_or_none()
filename = f"{project.project_name}.aro"
url = f"{WINDOWS_AEROS_BASE_URL}/download/{filename}"
async with httpx.AsyncClient() as client:
try:
# Download entire file (no streaming)
response = await client.get(url)
if response.status_code != 200:
raise HTTPException(
status_code=response.status_code,
detail="Failed to download from upstream service"
)
file_bytes = response.content # full file in memory
# Extract headers
# Force a secure/default filename for the client
secure_filename = "rbd_project_export.aro"
content_disposition = f'attachment; filename="{secure_filename}"'
media_type = response.headers.get(
"content-type",
"application/octet-stream"
)
# Return as ordinary file response
return Response(
content=file_bytes,
media_type=media_type,
headers={"Content-Disposition": content_disposition}
try:
# Download entire file (no streaming)
response = await aeros_post(
"/download",
json={
"filename": filename
},
)
if response.status_code != 200:
raise HTTPException(
status_code=response.status_code,
detail="Failed to download from upstream service"
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
file_bytes = response.content # full file in memory
# Extract headers
# Force a secure/default filename for the client
content_disposition = f'attachment; filename="{filename}"'
media_type = response.headers.get(
"content-type",
"application/octet-stream"
)
# Return as ordinary file response
return Response(
content=file_bytes,
media_type=media_type,
headers={"Content-Disposition": content_disposition}
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@router.get("/metadata", response_model=StandardResponse[AerosMetadata])

Loading…
Cancel
Save