Skip to content

Commit c7a417c

Browse files
committed
feat: 添加时间戳到上传的图片文件名,以避免文件名冲突
1 parent 937355e commit c7a417c

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/knowledge/indexing.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import base64
33
import os
44
import re
5+
import time
56
import zipfile
67
from pathlib import Path
78

@@ -73,9 +74,9 @@ def _upload_image_to_minio(image_data: bytes, filename: str, db_id: str) -> str:
7374
minio_client = get_minio_client()
7475
minio_client.ensure_bucket_exists("kb-images")
7576
file_id = hashstr(filename, length=16)
76-
object_name = f"{db_id}/{file_id}/images/{Path(filename).name}"
77-
77+
timestamp = int(time.time() * 1000000)
7878
suffix = Path(filename).suffix.lower()
79+
object_name = f"{db_id}/{file_id}/images/{timestamp}_{Path(filename).name}"
7980
content_type_map = {
8081
".jpg": "image/jpeg",
8182
".jpeg": "image/jpeg",
@@ -136,7 +137,8 @@ def _convert_with_docling(file_path: Path, params: dict | None = None) -> str:
136137
uri = str(pic.image.uri)
137138
if uri.startswith("data:"):
138139
image_data, mime_type = _parse_data_uri(uri)
139-
filename = f"image_{len(image_refs)}.{mime_type.split('/')[-1]}"
140+
timestamp = int(time.time() * 1000000) # 微秒级时间戳
141+
filename = f"image_{timestamp}.{mime_type.split('/')[-1]}"
140142
image_refs.append((filename, image_data))
141143

142144
# 上传图片并收集 URL
@@ -650,7 +652,8 @@ async def _process_images(zip_file: zipfile.ZipFile, images_dir: str, db_id: str
650652
data = f.read()
651653

652654
# 上传到MinIO
653-
object_name = f"{db_id}/{file_id}/images/{Path(img_name).name}"
655+
timestamp = int(time.time() * 1000000)
656+
object_name = f"{db_id}/{file_id}/images/{timestamp}_{Path(img_name).name}"
654657
content_type = CONTENT_TYPE_MAP.get(suffix, "image/jpeg")
655658

656659
result = await minio_client.aupload_file(

0 commit comments

Comments
 (0)