in main.py [0:0]
def handle_file_download(file_path: str):
try:
file_bytes = download_from_blob(file_path)
if not file_bytes:
return Response("File not found or empty.", status_code=404, media_type="text/plain")
except Exception as e:
error_message = str(e)
status_code = 404 if "BlobNotFound" in error_message else 500
logging.exception(f"[chainlit_app] Download error: {error_message}")
return Response(
f"{'Blob not found' if status_code == 404 else 'Internal server error'}: {error_message}.",
status_code=status_code,
media_type="text/plain"
)
actual_file_name = os.path.basename(file_path)
return StreamingResponse(
BytesIO(file_bytes),
media_type="application/octet-stream",
headers={"Content-Disposition": f'attachment; filename="{actual_file_name}"'}
)