- rl_verify.dspy: 返回{status:ok/data:{id,h5_link,byted_token}}
- rl_upload.dspy: 返回{status:ok/data:{id,vendor_asset_id,status}}
- rl_query_groups.dspy: 返回{status:ok/data:{groups:[...]}}
- rl_status.dspy: 返回{status:ok/data:{status,url}}
- rl_callback.dspy: 返回{status:ok/data:{vendor_group_id}}
- 新增submit_create_validate.dspy: 前端专用,返回bricks Message/Error widget
- create_validate.ui: Form指向新dspy + submited事件绑定
- api_downapp.md: 文档同步更新
36 lines
1.3 KiB
Plaintext
36 lines
1.3 KiB
Plaintext
import json
|
|
|
|
vendor_group_id = params_kw.get('vendor_group_id', '')
|
|
source_url = params_kw.get('source_url', '')
|
|
asset_type = params_kw.get('asset_type', 'Image')
|
|
name = params_kw.get('name', '')
|
|
|
|
if not vendor_group_id or not source_url:
|
|
return json.dumps({"status": "error", "data": {"message": "请选择认证组合并提供素材URL"}}, ensure_ascii=False)
|
|
|
|
# If source_url is base64 data or local path, convert to public URL
|
|
if source_url.startswith('data:') or (not source_url.startswith('http') and len(source_url) < 8000):
|
|
source_url = await b64media2url(request, source_url)
|
|
if not source_url:
|
|
return json.dumps({"status": "error", "data": {"message": "素材文件转换失败"}}, ensure_ascii=False)
|
|
|
|
org_id = (await get_userorgid()) or '0'
|
|
user_id = (await get_user()) or ''
|
|
|
|
result = await rl_upload_user(org_id, vendor_group_id, source_url, asset_type, name, user_id)
|
|
|
|
if result.get('success'):
|
|
return json.dumps({
|
|
"status": "ok",
|
|
"data": {
|
|
"id": result.get('id', ''),
|
|
"vendor_asset_id": result.get('vendor_asset_id', ''),
|
|
"status": result.get('status', 'Processing'),
|
|
}
|
|
}, ensure_ascii=False)
|
|
else:
|
|
return json.dumps({
|
|
"status": "error",
|
|
"data": {"message": result.get('message', '上传失败')}
|
|
}, ensure_ascii=False)
|