修BUG[0.2.8.16][ci]
All checks were successful
CI / docker-ci (push) Successful in 21s

This commit is contained in:
DSQ
2026-05-31 15:17:28 +08:00
parent 69c5747867
commit 0404c7e274

View File

@@ -845,7 +845,26 @@ def upload(request):
merged_group_data["错误信息"] = "".join(group_errors[:3]) merged_group_data["错误信息"] = "".join(group_errors[:3])
rel_paths = [f"images/{img[1]}" for img in group_images] rel_paths = [f"images/{img[1]}" for img in group_images]
image_urls = [request.build_absolute_uri(settings.MEDIA_URL + rp) for rp in rel_paths]
# 改进:如果配置了 MinIO则在上传阶段就同步到 MinIO确保在线版本待处理列表能显示图片
image_urls = []
from minio_storage.minio_connect import is_minio_configured, upload_file, presigned_get_url
minio_enabled = is_minio_configured()
for rp in rel_paths:
abs_p = os.path.join(settings.MEDIA_ROOT, rp)
if minio_enabled:
try:
# 上传到 MinIO
upload_file(abs_p, rp)
# 生成预签名 URL
url = presigned_get_url(rp)
image_urls.append(url)
except Exception as e:
print(f"上传临时图片到 MinIO 失败: {e}")
image_urls.append(request.build_absolute_uri(settings.MEDIA_URL + rp))
else:
image_urls.append(request.build_absolute_uri(settings.MEDIA_URL + rp))
file_results.append({ file_results.append({
"name": f.name, "name": f.name,
@@ -1883,7 +1902,8 @@ def export_achievements_csv(request):
# 6. 否则回退到 CSV # 6. 否则回退到 CSV
output = io.StringIO() output = io.StringIO()
output.write('\ufeff') # UTF-8 BOM output.write('\ufeff') # UTF-8 BOM
writer = csv.DictWriter(output, fieldnames=headers) # 增加 extrasaction='ignore' 以忽略 _image_refs 等内部辅助字段
writer = csv.DictWriter(output, fieldnames=headers, extrasaction='ignore')
writer.writeheader() writer.writeheader()
for row in parsed_data_list: for row in parsed_data_list:
writer.writerow(row) writer.writerow(row)