素材库
查询素材与目录列表
- 请求方法: POST
- 请求路径:
/geo/material/query
说明:未传 title 时按父目录查询;传入 title 时忽略父目录条件,在当前品牌的全部目录中搜索。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
brand_id | string | 品牌 ID。64 位整数用十进制字符串传递。 | 是 |
parent_id | string | 未传 title 时使用的父目录 ID;省略或 “0” 表示根目录。 | 否 |
title | string | 标题关键字。 | 否 |
tags | string 数组 | 素材标签筛选。 | 否 |
limit | int | 默认 20;大于 100 时按 100 处理。 | 否 |
scroll_id | string | 首次留空;翻页传回上次响应的游标。 | 否 |
请求示例:
{
"brand_id": "2072208110612647936",
"parent_id": "0",
"limit": 20
}响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
code | int | 业务状态码;0 表示成功。 |
msg | string | 状态说明。 |
data.list | object 数组 | 素材或目录列表。 |
data.list[].id | string | 素材或文件夹 ID。 |
data.list[].parent_id | string | 父目录 ID;根目录为 “0”。 |
data.list[].brand_id | string | 所属品牌 ID。 |
data.list[].title | string | 素材或目录名称。 |
data.list[].is_dir | int | 1:文件夹;2:素材。 |
data.list[].material_type | int | 0:目录默认值;1:网页;2:Markdown;3:其他支持的文件。 |
data.list[].tags | string 数组 | 素材标签。 |
data.list[].created_by | string | 创建人 ID。 |
data.list[].updated_time | int64 | 更新时间,Unix 毫秒;JSON 可能以字符串表示。 |
data.list[].parse_status | int | 0:未知;1:待解析;2:解析中;3:成功;4:失败。当前来源是网页解析状态。 |
data.list[].url | string | 文件访问 URL;可能为空。 |
data.list[].source_url | string | 网页原始地址;其他类型可为空。 |
data.list[].content | string | 接口返回的文本内容;可能为空。 |
data.scroll_id | string | 下一页游标;保持原样传回。 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"list": [
{
"id": "2072208110612647938",
"parent_id": "0",
"brand_id": "2072208110612647936",
"title": "测试素材A",
"is_dir": 2,
"material_type": 3,
"tags": [
"guide"
],
"created_by": "2072208110612647941",
"updated_time": "1791936000000",
"parse_status": 0,
"url": "https://example.com/material/2072208110612647936/test-material-a.pdf?signature=EXAMPLE",
"source_url": "",
"content": ""
}
],
"scroll_id": "2,1791936000000,2072208110612647938"
}
}获取素材详情与预览信息
- 请求方法: POST
- 请求路径:
/geo/material/get
说明:可根据返回的 content、url 和素材类型展示预览。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
brand_id | string | 品牌 ID。64 位整数用十进制字符串传递。 | 是 |
material_id | string | 素材 ID。 | 是 |
请求示例:
{
"brand_id": "2072208110612647936",
"material_id": "2072208110612647938"
}响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
code | int | 业务状态码;0 表示成功。 |
msg | string | 状态说明。 |
data | object | 素材信息。 |
data.id | string | 素材或文件夹 ID。 |
data.parent_id | string | 父目录 ID;根目录为 “0”。 |
data.brand_id | string | 所属品牌 ID。 |
data.title | string | 素材或目录名称。 |
data.is_dir | int | 1:文件夹;2:素材。 |
data.material_type | int | 0:目录默认值;1:网页;2:Markdown;3:其他支持的文件。 |
data.tags | string 数组 | 素材标签。 |
data.created_by | string | 创建人 ID。 |
data.updated_time | int64 | 更新时间,Unix 毫秒;JSON 可能以字符串表示。 |
data.parse_status | int | 0:未知;1:待解析;2:解析中;3:成功;4:失败。当前来源是网页解析状态。 |
data.url | string | 文件访问 URL;可能为空。 |
data.source_url | string | 网页原始地址;其他类型可为空。 |
data.content | string | 接口返回的文本内容;可能为空。 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"id": "2072208110612647938",
"parent_id": "0",
"brand_id": "2072208110612647936",
"title": "测试素材A",
"is_dir": 2,
"material_type": 3,
"tags": [
"guide"
],
"created_by": "2072208110612647941",
"updated_time": "1791936000000",
"parse_status": 0,
"url": "https://example.com/material/2072208110612647936/test-material-a.pdf?signature=EXAMPLE",
"source_url": "",
"content": ""
}
}获取素材上传预签名
- 请求方法: POST
- 请求路径:
/geo/material/upload/presign
说明:取得预签名 URL 后,以 PUT 上传文件原始字节,文件长度须与 file_size 一致。对象存储请求无需携带 X-API-Key;取得上传地址不会自动创建素材。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
brand_id | string | 品牌 ID。64 位整数用十进制字符串传递。 | 是 |
file_name | string | 文件全名。支持 .md、.png、.jpg、.jpeg、.doc、.docx、.ppt、.pptx、.pdf、.csv、.xls、.xlsx。 | 是 |
file_size | int | 文件字节数,必须大于 0 且不超过 104857600(100 MiB)。 | 是 |
请求示例:
{
"brand_id": "2072208110612647936",
"file_name": "test-material-a.pdf",
"file_size": 1024
}响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
code | int | 业务状态码;0 表示成功。 |
msg | string | 状态说明。 |
data.presigned_url | string | 用于 PUT 上传的完整预签名 URL,有效期 5 分钟。 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"presigned_url": "https://example.com/material/2072208110612647936/test-material-a.pdf?signature=EXAMPLE"
}
}更新素材信息或重命名文件夹
- 请求方法: POST
- 请求路径:
/geo/material/update
说明:仅更新素材标题和标签,源文件、正文及网页源地址保持不变。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
brand_id | string | 品牌 ID。64 位整数用十进制字符串传递。 | 是 |
id | string | 素材或目录 ID。 | 是 |
title | string | 新名称,非空,最多 100 个字符。 | 是 |
tags | string 数组 | 完整标签列表;省略或空数组会清空已有标签。 | 否 |
请求示例:
{
"brand_id": "2072208110612647936",
"id": "2072208110612647938",
"title": "测试素材A(已更新)",
"tags": [
"guide"
]
}响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
code | int | 业务状态码;0 表示成功。 |
msg | string | 状态说明。 |
data | object | 成功时为空对象。 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}批量移动素材或文件夹
- 请求方法: POST
- 请求路径:
/geo/material/move
说明:目标目录及所有待移动素材须属于 brand_id 指定的品牌。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
brand_id | string | 品牌 ID。64 位整数用十进制字符串传递。 | 是 |
target_parent_id | string | 目标文件夹 ID,当前实现要求非零;不支持用 “0” 移回根目录。 | 是 |
material_ids | string 数组 | 需要移动的素材或文件夹 ID。 | 是 |
请求示例:
{
"brand_id": "2072208110612647936",
"target_parent_id": "2072208110612647942",
"material_ids": [
"2072208110612647938"
]
}响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
code | int | 业务状态码;0 表示成功。 |
msg | string | 状态说明。 |
data | object | 成功时为空对象。 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}删除素材或文件夹
- 请求方法: POST
- 请求路径:
/geo/material/delete
说明:删除文件时同时清理关联数据和对象;文件夹的递归清理在后台执行,接口返回成功时子项可能仍在清理。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
brand_id | string | 品牌 ID。64 位整数用十进制字符串传递。 | 是 |
id | string | 素材或文件夹 ID。 | 是 |
请求示例:
{
"brand_id": "2072208110612647936",
"id": "2072208110612647938"
}响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
code | int | 业务状态码;0 表示成功。 |
msg | string | 状态说明。 |
data | object | 成功时为空对象。 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {}
}获取素材下载预签名
- 请求方法: POST
- 请求路径:
/geo/material/download/presign
说明:素材须有可下载的文件对象。使用返回的预签名 URL 直接 GET 下载,无需向对象存储发送 X-API-Key。
请求参数:
| 入参 | 类型 | 含义 | 是否必填 |
|---|---|---|---|
brand_id | string | 品牌 ID。64 位整数用十进制字符串传递。 | 是 |
material_id | string | 素材 ID。 | 是 |
请求示例:
{
"brand_id": "2072208110612647936",
"material_id": "2072208110612647938"
}响应参数:
| 返回值 | 类型 | 含义 |
|---|---|---|
code | int | 业务状态码;0 表示成功。 |
msg | string | 状态说明。 |
data.presigned_url | string | 下载 URL,有效期 5 分钟;设置下载文件名。 |
响应示例:
{
"code": 0,
"msg": "success",
"data": {
"presigned_url": "https://example.com/material/2072208110612647936/test-material-a.pdf?signature=EXAMPLE"
}
}