重构image_upload.py

This commit is contained in:
jingrow 2025-11-01 02:04:19 +08:00
parent a4cce52bf1
commit 68b4357670
2 changed files with 28 additions and 4 deletions

View File

@ -8,6 +8,7 @@ import logging
import os import os
from jingrow.model.page import Page from jingrow.model.page import Page
from jingrow.config import Config from jingrow.config import Config
from jingrow.utils.jingrow_api import upload_file_to_jingrow
_local = {} _local = {}
@ -117,6 +118,29 @@ def get_field_value_from_jingrow(pagetype: str, name: str, fieldname: str):
return Page(pagetype).get_field_value_from_jingrow(name, fieldname) return Page(pagetype).get_field_value_from_jingrow(name, fieldname)
def upload_file(file_data: bytes, filename: str, attached_to_pagetype: Optional[str] = None, attached_to_name: Optional[str] = None, attached_to_field: Optional[str] = None):
"""
上传文件到Jingrow服务器
Args:
file_data (bytes): 文件二进制数据
filename (str): 文件名
attached_to_pagetype (str, optional): 关联的页面类型
attached_to_name (str, optional): 关联的记录名称
attached_to_field (str, optional): 关联的字段名称
Returns:
dict: 上传结果
{
'success': bool,
'file_url': str, # 成功时返回文件URL
'file_name': str, # 成功时返回文件名
'error': str # 失败时返回错误信息
}
"""
return upload_file_to_jingrow(file_data, filename, attached_to_pagetype, attached_to_name, attached_to_field)
def map_fields_by_labels(field_map: list, ai_outputs: dict, label_to_fieldname: dict) -> dict: def map_fields_by_labels(field_map: list, ai_outputs: dict, label_to_fieldname: dict) -> dict:
""" """
根据 field_map ai_outputs 映射为记录字段数据 根据 field_map ai_outputs 映射为记录字段数据

View File

@ -3,7 +3,7 @@ import uuid
import base64 import base64
import requests import requests
from jingrow.config import Config from jingrow.config import Config
from jingrow.utils.jingrow_api import upload_file_to_jingrow, get_field_mapping_from_jingrow, get_field_value_from_jingrow import jingrow
from jingrow.utils.auth import get_jingrow_api_headers from jingrow.utils.auth import get_jingrow_api_headers
def log_info(message): def log_info(message):
@ -204,7 +204,7 @@ def execute(context=None, inputs=None, config=None, **kwargs):
if save_field: if save_field:
# 获取字段映射label到fieldname # 获取字段映射label到fieldname
label2field = get_field_mapping_from_jingrow(attached_to_pagetype) label2field = jingrow.get_field_mapping_from_jingrow(attached_to_pagetype)
# 确定目标字段名 # 确定目标字段名
target_field = save_field target_field = save_field
@ -216,7 +216,7 @@ def execute(context=None, inputs=None, config=None, **kwargs):
# 检查字段值是否为空 # 检查字段值是否为空
if target_field: if target_field:
current_field_value = get_field_value_from_jingrow( current_field_value = jingrow.get_field_value_from_jingrow(
attached_to_pagetype, attached_to_pagetype,
attached_to_name, attached_to_name,
target_field target_field
@ -227,7 +227,7 @@ def execute(context=None, inputs=None, config=None, **kwargs):
else: else:
pass pass
upload_result = upload_file_to_jingrow( upload_result = jingrow.upload_file(
file_data=raw_image_data, file_data=raw_image_data,
filename=filename, filename=filename,
attached_to_pagetype=attached_to_pagetype, attached_to_pagetype=attached_to_pagetype,