重构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
from jingrow.model.page import Page
from jingrow.config import Config
from jingrow.utils.jingrow_api import upload_file_to_jingrow
_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)
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:
"""
根据 field_map ai_outputs 映射为记录字段数据

View File

@ -3,7 +3,7 @@ import uuid
import base64
import requests
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
def log_info(message):
@ -204,7 +204,7 @@ def execute(context=None, inputs=None, config=None, **kwargs):
if save_field:
# 获取字段映射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
@ -216,7 +216,7 @@ def execute(context=None, inputs=None, config=None, **kwargs):
# 检查字段值是否为空
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_name,
target_field
@ -227,7 +227,7 @@ def execute(context=None, inputs=None, config=None, **kwargs):
else:
pass
upload_result = upload_file_to_jingrow(
upload_result = jingrow.upload_file(
file_data=raw_image_data,
filename=filename,
attached_to_pagetype=attached_to_pagetype,