From 2e6c955be321cefd7e0c4a3031eab805e0a5a303 Mon Sep 17 00:00:00 2001
From: Bin <bin.zheng@slooong.com>
Date: 星期三, 17 十二月 2025 12:00:39 +0800
Subject: [PATCH] 解决图片导出问题
---
label_studio/data_export/models.py | 48 +-----------------------------------------------
1 files changed, 1 insertions(+), 47 deletions(-)
diff --git a/label_studio/data_export/models.py b/label_studio/data_export/models.py
index 864ca46..9dabd51 100644
--- a/label_studio/data_export/models.py
+++ b/label_studio/data_export/models.py
@@ -156,58 +156,17 @@
input_json = DataExport.save_export_files(project, now, get_args, data, md5, name)
- upload_dir = os.path.join(settings.MEDIA_ROOT, settings.UPLOAD_DIR)
-
- # 调试日志
- logger.error(f'[Generate Export Debug] ========== Generate Export Started ==========')
- logger.error(f'[Generate Export Debug] Project ID: {project.id}')
- logger.error(f'[Generate Export Debug] Output format: {output_format}')
- logger.error(f'[Generate Export Debug] download_resources: {download_resources}')
- logger.error(f'[Generate Export Debug] hostname: {hostname}')
- logger.error(f'[Generate Export Debug] upload_dir: {upload_dir}')
- logger.error(f'[Generate Export Debug] upload_dir exists: {os.path.exists(upload_dir)}')
- if os.path.exists(upload_dir):
- try:
- logger.error(f'[Generate Export Debug] upload_dir contents: {os.listdir(upload_dir)}')
- except Exception as e:
- logger.error(f'[Generate Export Debug] Error listing upload_dir: {e}')
- logger.error(f'[Generate Export Debug] Task count: {len(tasks)}')
- if tasks:
- first_task = tasks[0]
- logger.error(f'[Generate Export Debug] First task data: {first_task.get("data", {})}')
- logger.error(f'[Generate Export Debug] settings.MEDIA_ROOT: {settings.MEDIA_ROOT}')
- logger.error(f'[Generate Export Debug] settings.UPLOAD_DIR: {settings.UPLOAD_DIR}')
-
converter = Converter(
config=project.get_parsed_config(),
project_dir=None,
- upload_dir=upload_dir,
+ upload_dir='/data', # 指向 /data 以匹配任务数据中的 /data/upload/ 路径
download_resources=download_resources,
access_token=project.organization.created_by.auth_token.key,
hostname=hostname,
)
-
- logger.error(f'[Generate Export Debug] Starting converter.convert...')
- logger.error(f'[Generate Export Debug] input_json: {input_json}')
-
with get_temp_dir() as tmp_dir:
- logger.error(f'[Generate Export Debug] tmp_dir: {tmp_dir}')
converter.convert(input_json, tmp_dir, output_format, is_dir=False)
- logger.error(f'[Generate Export Debug] Converter.convert completed')
-
files = get_all_files_from_dir(tmp_dir)
- logger.error(f'[Generate Export Debug] Output files: {files}')
- logger.error(f'[Generate Export Debug] tmp_dir listing: {os.listdir(tmp_dir)}')
-
- # 检查 images 目录
- images_dir = os.path.join(tmp_dir, 'images')
- if os.path.exists(images_dir):
- image_files = os.listdir(images_dir)
- logger.error(f'[Generate Export Debug] images/ directory exists with {len(image_files)} files')
- logger.error(f'[Generate Export Debug] Image files: {image_files}')
- else:
- logger.error(f'[Generate Export Debug] images/ directory does NOT exist')
-
# if only one file is exported - no need to create archive
if len(os.listdir(tmp_dir)) == 1:
output_file = files[0]
@@ -215,18 +174,13 @@
content_type = f'application/{ext}'
out = path_to_open_binary_file(output_file)
filename = name + os.path.splitext(output_file)[-1]
- logger.error(f'[Generate Export Debug] Single file export: {filename}')
- logger.error(f'[Generate Export Debug] ========== Generate Export Completed ==========')
return out, content_type, filename
# otherwise pack output directory into archive
- logger.error(f'[Generate Export Debug] Creating zip archive...')
shutil.make_archive(tmp_dir, 'zip', tmp_dir)
out = path_to_open_binary_file(os.path.abspath(tmp_dir + '.zip'))
content_type = 'application/zip'
filename = name + '.zip'
- logger.error(f'[Generate Export Debug] Zip created: {filename}')
- logger.error(f'[Generate Export Debug] ========== Generate Export Completed ==========')
return out, content_type, filename
--
Gitblit v1.9.3