文件管理
使用必读
- 先获取上传地址,然后再上传文件
- 文件上传成功后存在短暂延迟,目前测试最长延迟为1分钟
- 超过30日的文件会被自动删除
- QPS 30/min
- 文件上传地址在15分钟内有效
获取文件上传地址
请求地址
http
GET /open/v1/common/create_upload_url
Header
http
access_token: {{access_token}}
请求参数 Query Params
Key | 示例 | 说明 |
---|---|---|
service | customised_person | 文件使用目的,目前支持定制数字人、音色转换。 定制数字人:customised_person 音色素材:prompt_audio |
name | 1.mp4 | 原始文件名称,需要包含拓展名 |
请求示例
text
https://open-api.chanjing.cc/open/v1/common/create_upload_url?service=customised_person&name=1.mp4
响应JOSN
json
{
"trace_id": "5a31046b0df853c6eb972e24ef5fe6f2",
"code": 0,
"msg": "success",
"data": {
"sign_url": "https://res.chanjing.cc/chanjing%2Fres%2F37%2Fperson%2Ftrainedcustomised_person_1753239619_ea65d88474ba4501b8f72903cdf5d3af.mp4?Expires=1753243219&OSSAccessKeyId=LTAI5tQkfve4AYTyfmBR8pwV&Signature=CQWN%2F7cEDsbRc%2BB14jvqBUqUcEI%3D",
"full_path": "https://res.chanjing.cc/chanjing/res/37/person/trainedcustomised_person_1753239619_ea65d88474ba4501b8f72903cdf5d3af.mp4",
"key": "chanjing/res/37/person/trainedcustomised_person_1753239619_ea65d88474ba4501b8f72903cdf5d3af.mp4",
"mime_type": "video/mp4",
"file_id": "e284db4d95de4220afe78132158156b5"
}
}
响应参数
字段 | 层级 | 说明 |
---|---|---|
trace_id | 1 | 日志id |
code | 1 | 响应状态码 |
msg | 1 | 响应消息 |
data | 1 | 文件上传信息 |
sign_url | 2 | http put方法上传文件的地址(请勿使用该地址进行定制数字人功能) |
full_path | 2 | 上传成功后可直接访问的地址(上传成功有可能存在短暂数据同步延迟,最长延迟为1分钟) |
key | 2 | 文件相对路径 |
mime_type | 2 | 文件类型 |
file_id | 2 | 文件id |
响应状态码说明
code | 说明 |
---|---|
0 | 响应成功 |
400 | 参数错误 |
10400 | 获取文件上传地址错误 |
CURL
bash
curl --location --request GET 'https://open-api.chanjing.cc/open/v1/common/create_upload_url?service=customised_person&name=1.mp4' \
--header 'access_token: XXXXXXXXXXXXXXX' \
--header 'Accept: */*' \
--header 'Connection: keep-alive'
上传文件
python 请求示例
python
import requests
# 假设我们已经获取了上传地址
upload_url = "https://res.chanjing.cc/chanjing%2Fres%2F37%2Fperson%2Ftrainedcustomised_person_1753239619_ea65d88474ba4501b8f72903cdf5d3af.mp4?Expires=1753243219&OSSAccessKeyId=LTAI5tQkfve4AYTyfmBR8pwV&Signature=CQWN%2F7cEDsbRc%2BB14jvqBUqUcEI%3D"
content_type = "video/mp4" # 请使用 或取文件上传地址接口 返回的mime_type字段
file_path = "/path/to/your/file.mp4"
with open(file_path, 'rb') as file:
headers = {
"Content-Type": content_type
}
response = requests.put(upload_url, headers=headers, data=file)
print(f"状态码: {response.status_code}")
文件列表
请求地址
http
POST /open/v1/common/file_list
Header
http
access_token: {{access_token}}
请求参数Body
参数名称 | 类型 | 是否必传 | 示例 | 说明 |
---|---|---|---|---|
service | string | 是 | customised_person | 上传文件时登记的使用目的 |
order | string | 否 | create_time_desc | 排序规则,目前支持create_time_desc与create_time_asc,分别是按创建上传链接时间的倒序与正序 |
page | number | 否 | 1 | 页数,默认为0 |
page_size | number | 否 | 20 | 页码,默认为20 |
id | string | 否 | 39e8c8afce144faa82f758a57ba10554 | 文件id |
请求示例
bash
curl --location --request POST 'https://open-api.chanjing.cc/open/v1/common/file_list' \
--header 'access_token: XXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Connection: keep-alive' \
--data-raw '{"service":"customised_person", "order":"create_time_desc", "page":1, "page_size":10}'
响应JOSN
json
{
"trace_id": "df71e8a5189bc2908497c5ef2b0ba254",
"code": 0,
"msg": "success",
"data": {
"list": [
{
"id": "e284db4d95de4220afe78132158156b5",
"service": "customised_person",
"bytes": 0,
"create_time": 1753239619,
"file_path": "https://cy-cds-test-innovation.cds8.cn/chanjing/res/37/person/trainedcustomised_person_1753239619_ea65d88474ba4501b8f72903cdf5d3af.mp4",
"status": 1,
"msg":""
}
],
"page_info": {
"page": 1,
"size": 10,
"total_count": 1,
"total_page": 1
}
}
}
响应参数
字段 | 层级 | 说明 |
---|---|---|
trace_id | 1 | 日志id |
code | 1 | 响应状态码 |
msg | 1 | 响应消息 |
data | 1 | 文件列表 |
list | 3 | 文件列表 |
id | 4 | 文件id |
service | 4 | 使用目的 |
bytes | 4 | 文件大小 单位:字节 |
create_time | 4 | 创建时间 |
file_path | 4 | 文件地址 |
status | 4 | 文件状态码, 0文件未同步 1文件可用 |
msg | 4 | 文件不可用原因 |
page_info | 3 | 分页信息 |
page | 4 | 当前页码 |
size | 4 | 每页数据数 |
total_count | 4 | 总文件数 |
total_page | 4 | 总页码 |
响应状态码说明
code | 说明 |
---|---|
0 | 响应成功 |
400 | 参数错误 |
删除文件
请求地址
http
POST /open/v1/common/delete_file
Header
http
access_token: {{access_token}}
请求参数Body
参数名称 | 类型 | 是否必传 | 示例 | 说明 |
---|---|---|---|---|
id | string | 是 | e284db4d95de4220afe78132158156b5 | 文件id |
请求示例
bash
curl --location --request POST 'https://open-api.chanjing.cc/open/v1/common/delete_file' \
--header 'access_token: XXXXXXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--data-raw '{"id":"39e8c8afce144faa82f758a57ba10554"}'
响应JOSN
json
{
"trace_id": "746355542a2e96c1e8a56b8b91f561b6",
"code": 0,
"msg": "success",
"data": "删除成功"
}
响应参数
字段 | 层级 | 说明 |
---|---|---|
trace_id | 1 | 日志id |
code | 1 | 响应状态码 |
msg | 1 | 响应消息 |
data | 1 | 删除成功 |
响应状态码说明
code | 说明 |
---|---|
0 | 响应成功 |
400 | 参数错误 |
文件详情
请求地址
http
POST /open/v1/common/file_detail
Header
http
access_token: {{access_token}}
请求参数 Query Params
Key | Value | 说明 |
---|---|---|
id | 09eacb8ead0a423e9dcd75065ae32d25 | 文件id |
请求示例
bash
curl --location --request GET 'https://open-api.chanjing.cc/open/v1/common/file_detail?id=09eacb8ead0a423e9dcd75065ae32d25' \
--header 'access_token: XXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Connection: keep-alive'
响应JOSN
json
{
"trace_id": "df71e8a5189bc2908497c5ef2b0ba254",
"code": 0,
"msg": "success",
"data": {
"id": "e284db4d95de4220afe78132158156b5",
"service": "customised_person",
"bytes": 0,
"create_time": 1753239619,
"file_path": "https://cy-cds-test-innovation.cds8.cn/chanjing/res/37/person/trainedcustomised_person_1753239619_ea65d88474ba4501b8f72903cdf5d3af.mp4",
"status": 1,
"msg":""
}
}
响应参数
字段 | 层级 | 说明 |
---|---|---|
trace_id | 1 | 日志id |
code | 1 | 响应状态码 |
msg | 1 | 响应消息 |
data | 1 | 文件列表 |
list | 3 | 文件列表 |
id | 4 | 文件id |
service | 4 | 使用目的 |
bytes | 4 | 文件大小 单位:字节 |
create_time | 4 | 创建时间 |
file_path | 4 | 文件地址 |
status | 4 | 文件状态码, 0文件未同步 1文件可用 98内容安全检测失败 99文件标记为删除 100文件已被彻底清理 |
msg | 4 | 文件不可用原因 |
page_info | 3 | 分页信息 |
page | 4 | 当前页码 |
size | 4 | 每页数据数 |
total_count | 4 | 总文件数 |
total_page | 4 | 总页码 |
响应状态码说明
code | 说明 |
---|---|
0 | 响应成功 |
400 | 参数错误 |