ganesh-vilje commited on
Commit
3fa92e6
·
1 Parent(s): db3bed8

fix: CRITICAL - Replace S3 URIs with presigned URLs in all API responses

Browse files

- Changed file_url in session.file_metadata to use presigned_url instead of s3_uri
- Updated file_data in upload messages to use presigned_url
- Fixed fileUrl in message metadata to use presigned_url
- All user-facing fileUrl fields now return accessible presigned URLs
- S3 URIs kept internally as s3_uri field for reference
- Fixes issue where users received unusable s3:// URIs

Files changed (1) hide show
  1. api_routes_v2.py +5 -4
api_routes_v2.py CHANGED
@@ -781,7 +781,8 @@ def upload_stream_to_s3(chat_id: str, file: UploadFile) -> str:
781
  "file_metadata": {
782
  "has_file": True,
783
  "file_name": file.filename,
784
- "file_url": s3_uri,
 
785
  "uploaded_at": datetime.utcnow().isoformat() + "Z",
786
  **presigned # CHANGE
787
  }
@@ -795,7 +796,7 @@ def upload_stream_to_s3(chat_id: str, file: UploadFile) -> str:
795
  "file_data": {
796
  "has_file": True,
797
  "file_name": file.filename,
798
- "file_url": s3_uri
799
  }
800
  }
801
 
@@ -1053,8 +1054,8 @@ async def chat_unified(
1053
  if file_info:
1054
  file_meta_for_msg = {
1055
  "fileName": file.filename if file else None,
1056
- "fileUrl": file_info.get("s3_uri"),
1057
- "s3_uri": file_info.get("s3_uri")
1058
  }
1059
  _add_and_mirror_message(chat_id, "user", message, file_metadata=file_meta_for_msg)
1060
  # CHANGE: maybe generate a session title after first real user message
 
781
  "file_metadata": {
782
  "has_file": True,
783
  "file_name": file.filename,
784
+ "file_url": presigned["presigned_url"], # CRITICAL: Use presigned URL, not S3 URI
785
+ "s3_uri": s3_uri, # Keep for internal reference
786
  "uploaded_at": datetime.utcnow().isoformat() + "Z",
787
  **presigned # CHANGE
788
  }
 
796
  "file_data": {
797
  "has_file": True,
798
  "file_name": file.filename,
799
+ "file_url": presigned["presigned_url"] # Use presigned URL for user access
800
  }
801
  }
802
 
 
1054
  if file_info:
1055
  file_meta_for_msg = {
1056
  "fileName": file.filename if file else None,
1057
+ "fileUrl": file_info.get("presigned_url"), # Use presigned URL, not S3 URI
1058
+ "s3_uri": file_info.get("s3_uri") # Keep for internal reference
1059
  }
1060
  _add_and_mirror_message(chat_id, "user", message, file_metadata=file_meta_for_msg)
1061
  # CHANGE: maybe generate a session title after first real user message