fix(api): close base64 file lookup sessions (#36308)

Co-authored-by: Stephen Zhou <hi@hyoban.cc>
This commit is contained in:
Escape0707
2026-05-18 16:13:12 +09:00
committed by GitHub
parent d1238180ed
commit c07686928a
2 changed files with 14 additions and 12 deletions
+7 -6
View File
@@ -22,10 +22,11 @@ class AttachmentService:
raise AssertionError("must be a sessionmaker or an Engine.")
def get_file_base64(self, file_id: str) -> str:
upload_file = self._session_maker(expire_on_commit=False).scalar(
select(UploadFile).where(UploadFile.id == file_id).limit(1)
)
if not upload_file:
raise NotFound("File not found")
blob = storage.load_once(upload_file.key)
with self._session_maker(expire_on_commit=False) as session:
upload_file = session.scalar(select(UploadFile).where(UploadFile.id == file_id).limit(1))
if not upload_file:
raise NotFound("File not found")
upload_file_key = upload_file.key
blob = storage.load_once(upload_file_key)
return base64.b64encode(blob).decode()
+7 -6
View File
@@ -131,12 +131,13 @@ class FileService:
return file_size <= file_size_limit
def get_file_base64(self, file_id: str) -> str:
upload_file = self._session_maker(expire_on_commit=False).scalar(
select(UploadFile).where(UploadFile.id == file_id).limit(1)
)
if not upload_file:
raise NotFound("File not found")
blob = storage.load_once(upload_file.key)
with self._session_maker(expire_on_commit=False) as session:
upload_file = session.scalar(select(UploadFile).where(UploadFile.id == file_id).limit(1))
if not upload_file:
raise NotFound("File not found")
upload_file_key = upload_file.key
blob = storage.load_once(upload_file_key)
return base64.b64encode(blob).decode()
def upload_text(self, text: str, text_name: str, user_id: str, tenant_id: str) -> UploadFile: