获取文件上传签名
● 服务正常
按量计费
GET
通用接口
获取 S3 文件上传签名,把本地文件直传云存储后,把返回的 fileUrl 传给消除/修复等接口使用。文件 6 小时后自动删除。
GEThttps://api.vidtidy.cn/api/v1/upload-sign
鉴权:请求头 X-API-KEY: sk_live_…(也支持 key 查询参数)。
请求参数
| 名称 | 必填 | 类型 | 说明 |
fileName | 必填 |
string | 原始文件名,如 111.mp4 |
contentType | 选填 |
string | 文件 MIME 类型,默认 video/mp4 |
expiresIn | 选填 |
number | 签名过期时间(秒),默认 900 |
返回参数
| 名称 | 类型 | 说明 |
uploadUrl | string | 文件上传地址 |
method | string | 上传请求方法 |
formFields | object | 上传请求 multipart/form-data 参数(含签名字段) |
objectKey | string | 文件 key |
fileUrl | string | 上传完成后的文件完整地址,直接传给业务接口 |
bucketName | string | 存储桶名称 |
expiresIn | number | 签名有效期(秒) |
cost | string | 本次扣费金额(元,4 位小数) |
balance | string | 扣费后账户余额(元) |
返回示例
{
"code": 200,
"msg": "SUCCESS",
"data": {
"uploadUrl": "https://s3.example.com/",
"fileUrl": "https://s3.example.com/obj/demo.mp4",
"expiresIn": 900
},
"cost": "0.0015",
"balance": "48.9985"
}
说明:先用本接口拿到签名,再用 POST multipart/form-data 把文件直传 S3;文件 6 小时后自动删除,请尽快使用。
计费口径
| 项目 | 说明 |
| 计费方式 | 按次计费,每成功调用一次扣一次 |
| 我方单价 | 0.0015 元/次 |
| 定价口径 | 所有价格已含接入、重试、对账与技术支持,无任何隐藏费用 |
| 预扣与退款 | 按秒/按字类接口在提交时预扣,业务失败时 全额自动退回,无需申请 |
| 免费接口 | 任务查询类接口永远免费,高频轮询不会产生费用 |
| 最低余额 | 余额不足以支付本次预扣时会直接返回 402,不会产生任何调用 |
错误码
| code | 含义 | 处理建议 |
200 | 成功 | — |
-1 | 业务异常 | 见 msg。链接不支持 / 文件不可下载 / 时长超限最常见 |
401 | 密钥无效 | 检查请求头,或到控制台确认密钥未停用 |
402 | 余额不足 | 充值后重试,本次不扣费 |
429 | 频率超限 | 按 100 次/秒 退避 |
500 | 服务异常 | 平台波动,已自动退款 |
cURL
curl -G "https://api.vidtidy.cn/api/v1/upload-sign" \
-H "X-API-KEY: sk_live_你的密钥" \
-d "fileName=示例值"
Python
import requests
r = requests.get(
"https://api.vidtidy.cn/api/v1/upload-sign",
headers={"X-API-KEY": "sk_live_你的密钥"},
params={"fileName": "示例值"},
timeout=30,
)
print(r.json())Node.js
const url = new URL("https://api.vidtidy.cn/api/v1/upload-sign");
url.searchParams.set("fileName", "示例值");
const res = await fetch(url, {
headers: { "X-API-KEY": "sk_live_你的密钥" },
});
console.log(await res.json());PHP
true,
CURLOPT_HTTPHEADER => ["X-API-KEY: sk_live_你的密钥"],
]);
$out = curl_exec($ch);
curl_close($ch);
echo $out;