OSS 管理端

接口文档

通用鉴权

业务服务调用 API 时必须传项目对应的 API key。每个 API key 只能操作所属项目目录,目录固定为 project-slug/

Header:
X-API-Key: oss_live_xxx
Content-Type: application/json

获取上传 URL

POST /api/v1/uploads/presign

返回一个可直接 POST 到腾讯云 COS 的表单上传凭证。服务端会自动把文件放到当前 API key 所属项目的固定目录下,并在 COS policy 中限制文件大小。

{
  "filename": "demo.txt",
  "contentType": "text/plain",
  "key": "custom-name.txt",
  "expireSeconds": 180
}

filename 用于提取扩展名;key 可选,只能是项目目录内的相对文件路径,不需要包含 project slug。文件大小上限固定使用项目设置。

{
  "url": "https://bucket.cos.region.myqcloud.com",
  "method": "POST",
  "key": "project-slug/2026/07/k7x4p9m2qa.txt",
  "publicUrl": "https://oss.example.com/project-slug/2026/07/k7x4p9m2qa.txt",
  "fields": {
    "key": "project-slug/2026/07/k7x4p9m2qa.txt",
    "Content-Type": "text/plain",
    "success_action_status": "200",
    "policy": "base64-policy",
    "q-sign-algorithm": "sha1",
    "q-ak": "AKID...",
    "q-sign-time": "1783524063;1783524243",
    "q-key-time": "1783524063;1783524243",
    "q-signature": "..."
  },
  "bucket": "bucket-1234567890",
  "region": "ap-chengdu",
  "expireSeconds": 180,
  "expiresAt": 1783524243,
  "contentType": "text/plain",
  "maxSize": 104857600
}
curl -X POST "$url" \
  --form-string "key=$fields_key" \
  --form-string "Content-Type=text/plain" \
  --form-string "success_action_status=200" \
  --form-string "policy=$policy" \
  --form-string "q-sign-algorithm=sha1" \
  --form-string "q-ak=$q_ak" \
  --form-string "q-sign-time=$q_sign_time" \
  --form-string "q-key-time=$q_key_time" \
  --form-string "q-signature=$q_signature" \
  -F "file=@demo.txt;type=text/plain"
表单字段必须在 file 之前追加;超过 maxSize 的文件会被 COS policy 拒绝。

删除文件

POST /api/v1/files/delete

删除腾讯云 COS 中的单个对象。只能删除当前 API key 所属项目目录下的 key。

{
  "key": "project-slug/2026/07/k7x4p9m2qa.txt"
}
{
  "deleted": true,
  "key": "project-slug/2026/07/k7x4p9m2qa.txt"
}
401 invalid api key
403 key is not in this project directory
400 invalid key