更新文件上传功能,支持返回下载链接
This commit is contained in:
parent
bc05afbcb0
commit
6bd8a67103
@ -57,9 +57,9 @@ def get_config():
|
||||
def upload():
|
||||
try:
|
||||
files = request.files.getlist("images")
|
||||
img_urls = handle_file_uploads(files)
|
||||
img_urls, download_urls = handle_file_uploads(files)
|
||||
system_logger.info(f"用户上传文件: {len(files)} 张", user_id=session.get("user_id"))
|
||||
return jsonify({"urls": img_urls})
|
||||
return jsonify({"urls": img_urls, "download_urls": download_urls})
|
||||
except Exception as e:
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ from utils import get_proxied_url
|
||||
def handle_file_uploads(files):
|
||||
"""处理文件上传到 MinIO"""
|
||||
img_urls = []
|
||||
download_urls = []
|
||||
for f in files:
|
||||
ext = os.path.splitext(f.filename)[1]
|
||||
filename = f"{uuid.uuid4().hex}{ext}"
|
||||
@ -19,7 +20,11 @@ def handle_file_uploads(files):
|
||||
ExtraArgs={"ContentType": f.content_type}
|
||||
)
|
||||
img_urls.append(f"{Config.MINIO['public_url']}{quote(filename)}")
|
||||
return img_urls
|
||||
endpoint = Config.MINIO["endpoint"].rstrip("/")
|
||||
bucket = quote(Config.MINIO["bucket"], safe="")
|
||||
object_key = quote(filename, safe="/")
|
||||
download_urls.append(f"{endpoint}/{bucket}/{object_key}")
|
||||
return img_urls, download_urls
|
||||
|
||||
def get_remote_file_stream(url):
|
||||
"""获取远程文件的流"""
|
||||
|
||||
@ -730,7 +730,7 @@ document.getElementById('submitBtn').onclick = async () => {
|
||||
throw new Error(uploadResult.error || '参考图上传失败');
|
||||
}
|
||||
|
||||
image = (uploadResult.urls || []).map(url => new URL(url, window.location.origin).href);
|
||||
image = uploadResult.download_urls || [];
|
||||
if (image.length !== uploadedFiles.length) {
|
||||
throw new Error('部分参考图上传失败');
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user