This commit is contained in:
@@ -845,7 +845,26 @@ def upload(request):
|
||||
merged_group_data["错误信息"] = ";".join(group_errors[:3])
|
||||
|
||||
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({
|
||||
"name": f.name,
|
||||
@@ -1883,7 +1902,8 @@ def export_achievements_csv(request):
|
||||
# 6. 否则回退到 CSV
|
||||
output = io.StringIO()
|
||||
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()
|
||||
for row in parsed_data_list:
|
||||
writer.writerow(row)
|
||||
|
||||
Reference in New Issue
Block a user