fix: Large document thumbnail display failed (#2763)

### What problem does this PR solve?

In MySQL, when the thumbnail base64 of a document is relatively large,
the display of the document's thumbnail fails.
Now, I put the document thumbnail into MiniIO storage.

### Type of change

- [✓] Bug Fix (non-breaking change which fixes an issue)

---------

Co-authored-by: chongchuanbing <chongchuanbing@gmail.com>
This commit is contained in:
chongchuanbing
2024-10-10 09:09:29 +08:00
committed by GitHub
parent f7a73c5149
commit 485bfd6c08
4 changed files with 29 additions and 12 deletions

View File

@ -51,6 +51,7 @@ from api.utils.api_utils import get_json_result
from rag.utils.storage_factory import STORAGE_IMPL
from api.utils.file_utils import filename_type, thumbnail, get_project_base_directory
from api.utils.web_utils import html2pdf, is_valid_url
from api.contants import IMG_BASE64_PREFIX
@manager.route('/upload', methods=['POST'])
@ -209,6 +210,11 @@ def list_docs():
try:
docs, tol = DocumentService.get_by_kb_id(
kb_id, page_number, items_per_page, orderby, desc, keywords)
for doc_item in docs:
if doc_item['thumbnail'] and not doc_item['thumbnail'].startswith(IMG_BASE64_PREFIX):
doc_item['thumbnail'] = f'/v1/document/image/{kb_id}-{doc_item['thumbnail']}'
return get_json_result(data={"total": tol, "docs": docs})
except Exception as e:
return server_error_response(e)