文件动作
关于 bytes 类型的提示
在 JSON 中,bytes 类型的字段表示为 Base64 编码的字符串。具体见 基本数据类型。
upload_file
上传文件
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
type |
string | - | 上传文件的方式,可以为 url 、path 、data 或扩展的方式 |
name |
string | - | 文件名,如 foo.jpg |
url |
string | - | 文件 URL,当 type 为 url 时必须传入,OneBot 实现必须支持以 HTTP(S) 协议从此 URL 下载要上传的文件 |
headers |
map[string]string | - | 下载 URL 时需要添加的 HTTP 请求头,可选传入,当 type 为 url 时 OneBot 实现必须在请求 URL 时加上这些请求头 |
path |
string | - | 文件路径,当 type 为 path 时必须传入,OneBot 实现必须能从此路径访问要上传的文件 |
data |
bytes | - | 文件数据,当 type 为 data 时必须传入 |
sha256 |
string | - | 文件数据(原始二进制)的 SHA256 校验和,全小写,可选传入 |
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
file_id |
string | - | 文件 ID,可供以后使用 |
{
"action": "upload_file",
"params": {
"type": "url",
"name": "logo.jpg",
"url": "https://avatars.githubusercontent.com/u/56297293?s=200&v=4"
}
}
{
"status": "ok",
"retcode": 0,
"data": {
"file_id": "e30f9684-3d54-4f65-b2da-db291a477f16"
},
"message": ""
}
upload_file_fragmented
分片上传文件
准备阶段:
提示
在准备阶段,OneBot 实现可以在文件系统中先创建好文件,之后在传输阶段写入数据。
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
stage |
string | - | 上传阶段,必须为 prepare |
name |
string | - | 文件名,如 foo.jpg |
total_size |
int64 | - | 文件完整大小,单位:字节 |
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
file_id |
string | - | 文件 ID,仅传输阶段使用 |
传输阶段:
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
stage |
string | - | 上传阶段,必须为 transfer |
file_id |
string | - | 准备阶段返回的文件 ID |
offset |
int64 | - | 本次传输的文件偏移,单位:字节 |
data |
bytes | - | 本次传输的文件数据 |
无。
结束阶段:
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
stage |
string | - | 上传阶段,必须为 finish |
file_id |
string | - | 准备阶段返回的文件 ID |
sha256 |
string | - | 整个文件的 SHA256 校验和,全小写 |
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
file_id |
string | - | 文件 ID,可供以后使用 |
get_file
获取文件
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
file_id |
string | - | 文件 ID |
type |
string | - | 获取文件的方式,可以为 url 、path 、data 或扩展的方式 |
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
name |
string | - | 文件名,如 foo.jpg |
url |
string | - | 文件 URL,当 type 为 url 时必须返回,应用端必须能以 HTTP(S) 协议从此 URL 下载文件 |
headers |
map[string]string | - | 下载 URL 时需要添加的 HTTP 请求头,可选返回 |
path |
string | - | 文件路径,当 type 为 path 时必须返回,应用端必须能从此路径访问文件 |
data |
bytes | - | 文件数据,当 type 为 data 时必须返回 |
sha256 |
string | - | 文件数据(原始二进制)的 SHA256 校验和,全小写,可选返回 |
提示
这里虽然说“必须返回”,但如果平台真的无法获得 URL,当用户请求 type
为 url
时,可以返回 10004 Unsupported Param
。具体见 接口定义 - 概述 中对 OneBot 实现的要求。
{
"action": "get_file",
"params": {
"file_id": "e30f9684-3d54-4f65-b2da-db291a477f16",
"type": "url"
}
}
{
"status": "ok",
"retcode": 0,
"data": {
"name": "logo.jpg",
"url": "https://avatars.githubusercontent.com/u/56297293?s=200&v=4"
},
"message": ""
}
get_file_fragmented
分片获取文件
准备阶段:
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
stage |
string | - | 准备阶段,必须为 prepare |
file_id |
string | - | 文件 ID |
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
name |
string | - | 文件名,如 foo.jpg |
total_size |
int64 | - | 文件完整大小,单位:字节 |
sha256 |
string | - | 整个文件的 SHA256 校验和,全小写 |
传输阶段:
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
stage |
string | - | 传输阶段,必须为 transfer |
file_id |
string | - | 文件 ID |
offset |
int64 | - | 本次传输的文件偏移,单位:字节 |
size |
int64 | - | 本次传输的文件大小,单位:字节 |
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
data |
bytes | - | 本次传输的文件数据 |