文件上传

查看 Markdown 原文

概述

文件上传接口用于在创建图生图、视频生成等任务前上传输入素材,并获得可直接传入 imageUrlsvideoUrl 等字段的文件访问 URL。

支持两种上传方式:

方式接口说明
客户端直传POST /api/v2/open/upload/presigned推荐。先获取预签名上传地址,再由客户端 PUT 文件到存储服务
服务端转存POST /api/v2/open/upload使用 multipart/form-data 将文件上传到网关服务

国内 Base URL: https://api.apiverse.ai

海外 Base URL: https://api.apiverse.ai


认证方式

所有接口均需要在请求头中携带 Token 进行认证:

Authorization: Bearer {YOUR_AUTH_TOKEN}

1. 获取预签名上传 URL

POST /api/v2/open/upload/presigned

获取一个临时有效的 uploadUrl。客户端使用该 URL 通过 PUT 方式直传文件,上传成功后使用接口返回的 fileUrl 作为业务请求中的素材 URL。

Content-Type: application/json

请求参数

参数类型必填说明
filenamestring文件名,必须包含扩展名,如 input.jpgdemo.mp4
contentTypestring文件 MIME 类型。不传时会根据扩展名自动推断

支持格式

类型支持扩展名
图片jpgjpegpnggifwebp
视频mp4movavimkvwebm

请求示例

curl -X POST "https://api.apiverse.ai/api/v2/open/upload/presigned" \
  -H "Authorization: Bearer your_auth_token_here" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "input.jpg",
    "contentType": "image/jpeg"
  }'

响应参数

参数类型说明
uploadUrlstring预签名上传 URL,客户端使用 PUT 上传文件
fileUrlstring上传成功后的文件访问 URL,可用于后续创建任务
keystring文件存储路径
expireint64uploadUrl 过期时间戳,单位秒

响应示例

{
  "code": 0,
  "msg": "success",
  "data": {
    "uploadUrl": "https://example-bucket.example-endpoint.com/uploads/20260513/20260513120000_abc123.jpg?OSSAccessKeyId=xxx&Expires=1778661000&Signature=xxx",
    "fileUrl": "https://fc-gw-sh.oss-accelerate.aliyuncs.com/uploads/20260513/20260513120000_abc123.jpg",
    "key": "uploads/20260513/20260513120000_abc123.jpg",
    "expire": 1778661000
  }
}

使用 uploadUrl 上传文件

PUT 上传时的 Content-Type 必须和获取预签名 URL 时传入或自动推断的 contentType 保持一致。

curl -X PUT "{uploadUrl}" \
  -H "Content-Type: image/jpeg" \
  --data-binary "@input.jpg"

上传成功后,使用第一步响应中的 fileUrl 创建任务:

{
  "prompt": "将图片转换为水彩画风格",
  "genType": "i2i",
  "imageUrls": [
    "https://fc-gw-sh.oss-accelerate.aliyuncs.com/uploads/20260513/20260513120000_abc123.jpg"
  ]
}

2. 表单上传文件

POST /api/v2/open/upload

通过网关服务上传文件。该接口不限制文件格式,单个文件大小不能超过 100MB。

Content-Type: multipart/form-data

请求参数

参数类型必填说明
filefile文件

支持格式与限制

项目限制
文件格式不限制
文件大小最大 100MB

请求示例

curl -X POST "https://api.apiverse.ai/api/v2/open/upload" \
  -H "Authorization: Bearer your_auth_token_here" \
  -F "file=@input.jpg"

响应参数

参数类型说明
urlstring文件访问 URL,可用于后续创建任务
filenamestring上传后的文件名
sizeint64文件大小,单位字节

响应示例

{
  "code": 0,
  "msg": "success",
  "data": {
    "url": "https://fc-gw-sh.oss-accelerate.aliyuncs.com/open-uploads/20260513/120000_abc123.jpg",
    "filename": "120000_abc123.jpg",
    "size": 102400
  }
}

常见错误

场景说明
未携带 Authorization返回认证失败
filename 为空预签名接口返回参数错误
文件扩展名不支持预签名接口返回参数错误
表单上传文件超过 100MB表单上传接口返回参数错误
PUT 上传失败检查 uploadUrl 是否过期、Content-Type 是否一致、请求方法是否为 PUT