上传文件
调用 /v1/file/upload 生成预签名上传地址,再把返回的 download_url 传给接受公网素材 URL 的接口。
http
PUT /v1/file/upload这个接口不直接接收文件内容,而是先签发一个对象存储 PUT 地址,客户端拿到地址后再自行上传文件。适合图片、视频和其他媒体素材的预上传,使用 API Key 认证。
预签名地址默认过期时间为 900 秒,最短 60 秒,最长 3600 秒。
请求头
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| string | 是 | 请求身份认证。使用 Bearer Token,示例: | |
| string | 是 | 请求内容类型,必须设置为 |
请求体
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| object | 否 | 上传请求的自定义头部 | |
| string | 否 | 文件 MIME 类型,例如 、、 | |
| object | 否 | 上传 URL 的附加查询参数;不需要时可传空对象 |
请求示例
bash
curl -X PUT https://octopusx.ai/v1/file/upload \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"headers": {
"Content-Type": "image/png"
},
"params": {}
}'bash
curl -X PUT https://octopusx.ai/v1/file/upload \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"headers": {
"Content-Type": "video/mp4"
},
"params": {}
}'响应示例
json
{
"download_url": "https://xxxx.cn/uploads/file/2026/djlh2xxxxffqhkt.png",
"expire": 3600,
"method": "PUT",
"upload_url": "https://.../uploads/user/12/20260519-abcdef.png?signature=..."
}响应字段
| 名称 | 类型 | 说明 |
|---|---|---|
| string | 上传成功后可直接传给图像、视频和任务接口的公网 URL | |
| integer | 预签名 URL 的过期时间,单位秒 | |
| string | 上传方法,当前固定为 | |
| string | 带签名的对象存储上传地址 |
上传文件到预签名地址
拿到 upload_url 后,对目标地址发起 PUT 请求上传文件本体。Content-Type 须与请求预签名地址时传入的值一致。
bash
# 上传视频(Content-Type 须与获取 upload_url 时声明的 video/mp4 一致)
curl -X PUT "https://.../uploads/user/12/20260519-abcdef.mp4?signature=..." \
-H "Content-Type: video/mp4" \
--data-binary @/path/to/video.mp4使用场景
上传后再用于素材 URL 接口
- 调用
/v1/file/upload取得upload_url与download_url - 对
upload_url发起PUT上传文件 - 在接受公网素材 URL 的接口中把
download_url作为输入字段传入
注意事项
WARNING
这个接口只负责签发上传地址,不会替你上传文件本身。真正的文件上传需要客户端对 upload_url 再发一次 PUT 请求。