Bin
2025-12-17 9c629de46866ff605ed8d86d564963854aeedf36
测试脚本_4
已修改1个文件
48 ■■■■■ 文件已修改
label_studio/data_export/models.py 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
label_studio/data_export/models.py
@@ -156,17 +156,58 @@
        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=os.path.join(settings.MEDIA_ROOT, settings.UPLOAD_DIR),
            upload_dir=upload_dir,
            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]
@@ -174,13 +215,18 @@
                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