Skip to content

本地 HTTP(S) 接口

SDK Open 通过本地 Asset HTTP/HTTPS 端点提供输入文件上传和任务资产读取能力。

站点地址说明
Asset HTTPShttps://sdk-runtime.localhost:18082对外 SDK 默认端点,用于上传文件和读取任务资产。
Asset HTTPhttp://127.0.0.1:17082明文兼容端点。

对外 SDK 默认开启 TLS,并使用 sdk-runtime.localhost 本机域名。Asset HTTP 端口可通过 SDK_ASSET_HTTP_PORT 覆盖,Asset HTTPS 端口可通过 SDK_ASSET_HTTPS_PORT 覆盖。自定义 TLS 部署时,客户端应使用证书匹配的 <tls-host>,并信任服务端证书或其签发 CA。

资产 URL 默认使用配置的资产基地址;如需通过 HTTPS、反向代理或固定外部地址访问,请将 SDK_ASSET_BASE_URL 设置为客户端实际可访问的 HTTPS 基地址,例如 https://sdk.example.com:18082

需要鉴权的接口使用:

http
Authorization: Bearer <token>

上传和资产接口使用 auth.create_session 返回的 session_token

接口支持 CORS 预检,允许 AuthorizationContent-Type 请求头,以及 GETPOSTOPTIONS 方法。

上传接口

POST /api/uploads/imagesPOST /api/uploads/files 接受 multipart/form-data,当前两个路径走同一套上传处理逻辑。

鉴权要求:Authorization: Bearer <session_token>。该 session 需要具备 image.processimage.enhancefile.convert 任一 capability。

字段类型必填说明
filefile图片、PDF、OFD 或 TIFF。文件不能为空,最大 50MB。

支持的文件扩展名:jpgjpegpngbmptiftiffwebppdfofd。当 Content-Type 为空或为 application/octet-stream 时,会根据扩展名补充资产 content_type

成功响应:

字段类型说明
upload_idstring后续 Command 方法使用的上传 ID。
assetobject原始资产,asset_id=asset-originalkind=original,包含 pathurldownload_urlcontent_typewidthheightsize。上传文件的 widthheight 可能为 0

示例:

bash
curl -X POST "https://sdk-runtime.localhost:18082/api/uploads/files" \
  -H "Authorization: Bearer <session_token>" \
  -F "file=@/path/to/input.pdf"

响应示例:

json
{
  "upload_id": "img-1780920159-1",
  "asset": {
    "asset_id": "asset-original",
    "kind": "original",
    "path": "/home/user/.czur/sdk/image/img-1780920159-1/assets/original.pdf",
    "url": "https://sdk-runtime.localhost:18082/api/assets/img-1780920159-1/asset-original",
    "download_url": "https://sdk-runtime.localhost:18082/api/assets/img-1780920159-1/asset-original/download",
    "content_type": "application/pdf",
    "width": 0,
    "height": 0,
    "size": 102400
  }
}

资产接口

接口鉴权说明
GET /api/assets/{task_id}/{asset_id}session token以内联方式读取资产,响应头 Content-Disposition: inline
GET /api/assets/{task_id}/{asset_id}/downloadsession token以附件方式下载资产,响应头 Content-Disposition: attachment; filename="{asset_id}"

资产访问会校验 session_token 所属连接和任务资产归属。跨连接读取会返回 capability 或 session 错误。当前资产读取规则:

资产来源读取要求
上传资产、图像处理资产、文件转换资产、SANE 扫描资产同一连接,且 session 具备 image.processimage.enhancefile.convertsane.scan 任一 capability。
图像增强任务资产同一连接,且 session 具备 image.enhance
采集任务资产同一连接,且 session 具备 capture.get

如果资产记录存在但本地文件已不存在,HTTP 返回 404

错误响应

HTTP 接口错误响应使用统一 JSON:

json
{
  "code": 401,
  "message": "unauthorized",
  "data": {}
}

常见 HTTP 状态:

HTTP 状态场景
400缺少 multipart file 字段,或上传文件为空、过大、格式不支持。
401缺少或无效的 session token。
403session 存在,但缺少访问上传或资产所需 capability。
404上传或资产接口未启用,或资产不存在。
500内部错误。

CZUR Open Platform Documentation