Skip to content

群文件 API

本页覆盖群文件系统(GFS)相关接口,包括文件/目录的查询、创建、删除、下载地址获取,以及群文件和私聊文件的上传。

快速索引

API描述
get_group_file_system_info获取群文件系统信息
get_group_root_files获取群根目录文件列表
get_group_files_by_folder获取群子目录文件列表
get_group_file_url获取群文件下载地址
delete_group_file删除群文件
create_group_file_folder创建群文件目录
delete_group_folder删除群文件目录
upload_group_file上传群文件
upload_private_file上传私聊文件

获取群文件系统信息

  • API: get_group_file_system_info
  • 描述: 获取群文件系统的容量与文件计数信息。

请求参数

字段类型必填默认值说明
group_idnumber | string-群号。
json
{
  "group_id": "<group_id>"
}

响应参数

字段类型说明备注
file_countnumber当前文件数量。-
limit_countnumber文件数量上限。-
used_spacenumber已用空间(字节)。-
total_spacenumber总空间(字节)。-
json
{
  "file_count": 0,
  "limit_count": 0,
  "used_space": 0,
  "total_space": 0
}

示例

bash
curl -X POST 'http://127.0.0.1:5700/get_group_file_system_info' \
  -H 'Content-Type: application/json' \
  -d '{"group_id":"<group_id>"}'
js
const res = await fetch('http://127.0.0.1:5700/get_group_file_system_info', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    group_id: '<group_id>'
  })
})

const body = await res.json()
console.log(body.data)
py
import requests

resp = requests.post(
    "http://127.0.0.1:5700/get_group_file_system_info",
    json={"group_id": "<group_id>"},
    timeout=10,
)
resp.raise_for_status()
body = resp.json()
print(body["data"])

错误码

retcode说明
1400参数错误,例如缺少 group_id
1500查询失败。

获取群根目录文件列表

  • API: get_group_root_files
  • 描述: 获取群文件根目录下的文件和文件夹列表。

请求参数

字段类型必填默认值说明
group_idnumber | string-群号。
json
{
  "group_id": "<group_id>"
}

响应参数

字段类型说明备注
filesobject[]文件列表。见下方文件对象字段表。
foldersobject[]文件夹列表。见下方文件夹对象字段表。

文件对象字段:

字段类型说明备注
group_idnumber群号。GFS 条目中恒为 0
file_idstring文件 ID。-
file_namestring文件名。-
busidnumber文件业务 ID。-
file_sizenumber文件大小(字节)。-
upload_timenumber上传时间戳(秒)。-
dead_timenumber过期时间戳(秒)。-
modify_timenumber修改时间戳(秒)。-
download_timesnumber下载次数。-
uploadernumber上传者 QQ 号。-
uploader_namestring上传者昵称。可能为空字符串。
sha1string文件 SHA1。-
md5string文件 MD5。-

文件夹对象字段:

字段类型说明备注
group_idnumber群号。GFS 条目中恒为 0
folder_idstring文件夹 ID。-
folder_namestring文件夹名称。-
create_timenumber创建时间戳(秒)。-
creatornumber创建者 QQ 号。-
creator_namestring创建者昵称。可能为空字符串。
total_file_countnumber文件夹内文件数量。-
json
{
  "files": [
    {
      "group_id": 0,
      "file_id": "<file_id>",
      "file_name": "example.zip",
      "busid": 0,
      "file_size": 0,
      "upload_time": 0,
      "dead_time": 0,
      "modify_time": 0,
      "download_times": 0,
      "uploader": 0,
      "uploader_name": "",
      "sha1": "",
      "md5": ""
    }
  ],
  "folders": [
    {
      "group_id": 0,
      "folder_id": "<folder_id>",
      "folder_name": "",
      "create_time": 0,
      "creator": 0,
      "creator_name": "",
      "total_file_count": 0
    }
  ]
}

示例

bash
curl -X POST 'http://127.0.0.1:5700/get_group_root_files' \
  -H 'Content-Type: application/json' \
  -d '{"group_id":"<group_id>"}'
js
const res = await fetch('http://127.0.0.1:5700/get_group_root_files', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    group_id: '<group_id>'
  })
})

const body = await res.json()
console.log(body.data.files)
console.log(body.data.folders)
py
import requests

resp = requests.post(
    "http://127.0.0.1:5700/get_group_root_files",
    json={"group_id": "<group_id>"},
    timeout=10,
)
resp.raise_for_status()
body = resp.json()
print(body["data"]["files"])
print(body["data"]["folders"])

错误码

retcode说明
1400参数错误,例如缺少 group_id
1500查询失败。

注意事项

  • 文件项中的 group_id 字段在 GFS 列表里恒为 0

获取群子目录文件列表

  • API: get_group_files_by_folder
  • 描述: 获取群文件指定目录下的文件和文件夹列表。

请求参数

字段类型必填默认值说明
group_idnumber | string-群号。
folder_idstring-目录 ID。
json
{
  "group_id": "<group_id>",
  "folder_id": "<folder_id>"
}

响应参数

字段类型说明备注
filesobject[]文件列表。结构同 get_group_root_files 的文件对象。
foldersobject[]文件夹列表。结构同 get_group_root_files 的文件夹对象。
json
{
  "files": [
    {
      "group_id": 0,
      "file_id": "<file_id>",
      "file_name": "example.zip",
      "busid": 0,
      "file_size": 0,
      "upload_time": 0,
      "dead_time": 0,
      "modify_time": 0,
      "download_times": 0,
      "uploader": 0,
      "uploader_name": "",
      "sha1": "",
      "md5": ""
    }
  ],
  "folders": []
}

示例

bash
curl -X POST 'http://127.0.0.1:5700/get_group_files_by_folder' \
  -H 'Content-Type: application/json' \
  -d '{"group_id":"<group_id>","folder_id":"<folder_id>"}'
js
const res = await fetch('http://127.0.0.1:5700/get_group_files_by_folder', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    group_id: '<group_id>',
    folder_id: '<folder_id>'
  })
})

const body = await res.json()
console.log(body.data.files)
console.log(body.data.folders)
py
import requests

resp = requests.post(
    "http://127.0.0.1:5700/get_group_files_by_folder",
    json={
        "group_id": "<group_id>",
        "folder_id": "<folder_id>",
    },
    timeout=10,
)
resp.raise_for_status()
body = resp.json()
print(body["data"]["files"])
print(body["data"]["folders"])

错误码

retcode说明
1400参数错误,例如缺少 group_idfolder_id
1500查询失败。

注意事项

  • 文件项中的 group_id 字段在 GFS 列表里恒为 0

获取群文件下载地址

  • API: get_group_file_url
  • 描述: 获取群文件的下载 URL。

请求参数

字段类型必填默认值说明
group_idnumber | string-群号。
file_idstring-文件 ID。
busidnumber | string-文件业务 ID;缺省时自动推导。
json
{
  "group_id": "<group_id>",
  "file_id": "<file_id>"
}

响应参数

字段类型说明备注
urlstring文件下载 URL。-
json
{
  "url": "https://example.com/download?file=<file_id>"
}

示例

bash
curl -X POST 'http://127.0.0.1:5700/get_group_file_url' \
  -H 'Content-Type: application/json' \
  -d '{"group_id":"<group_id>","file_id":"<file_id>"}'
js
const res = await fetch('http://127.0.0.1:5700/get_group_file_url', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    group_id: '<group_id>',
    file_id: '<file_id>'
  })
})

const body = await res.json()
console.log(body.data.url)
py
import requests

resp = requests.post(
    "http://127.0.0.1:5700/get_group_file_url",
    json={
        "group_id": "<group_id>",
        "file_id": "<file_id>",
    },
    timeout=10,
)
resp.raise_for_status()
body = resp.json()
print(body["data"]["url"])

错误码

retcode说明
1400参数错误,例如缺少 group_idfile_id
1500获取下载地址失败。

删除群文件

  • API: delete_group_file
  • 描述: 删除群文件系统中的一个文件。

请求参数

字段类型必填默认值说明
group_idnumber | string-群号。
file_idstring-文件 ID。
busidnumber | string-文件业务 ID;缺省时自动推导。
json
{
  "group_id": "<group_id>",
  "file_id": "<file_id>"
}

响应参数

成功时 datanull

示例

bash
curl -X POST 'http://127.0.0.1:5700/delete_group_file' \
  -H 'Content-Type: application/json' \
  -d '{"group_id":"<group_id>","file_id":"<file_id>"}'
js
const res = await fetch('http://127.0.0.1:5700/delete_group_file', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    group_id: '<group_id>',
    file_id: '<file_id>'
  })
})

const body = await res.json()
console.log(body.status)
py
import requests

resp = requests.post(
    "http://127.0.0.1:5700/delete_group_file",
    json={
        "group_id": "<group_id>",
        "file_id": "<file_id>",
    },
    timeout=10,
)
resp.raise_for_status()
body = resp.json()
print(body["status"])

错误码

retcode说明
1400参数错误,例如缺少 group_idfile_id
1500删除失败。

创建群文件目录

  • API: create_group_file_folder
  • 描述: 在群文件根目录下创建一个新文件夹。

请求参数

字段类型必填默认值说明
group_idnumber | string-群号。
namestring-文件夹名称。
parent_idstring-父目录 ID;接受但不生效,始终在根目录下创建。
json
{
  "group_id": "<group_id>",
  "name": "new-folder"
}

响应参数

字段类型说明备注
group_idnumber群号。-
folder_idstring新文件夹 ID。-
folder_namestring文件夹名称。-
create_timenumber创建时间戳(秒)。-
creatornumber创建者 QQ 号。-
total_file_countnumber文件夹内文件数量。新建时为 0
json
{
  "group_id": 0,
  "folder_id": "<folder_id>",
  "folder_name": "new-folder",
  "create_time": 0,
  "creator": 0,
  "total_file_count": 0
}

示例

bash
curl -X POST 'http://127.0.0.1:5700/create_group_file_folder' \
  -H 'Content-Type: application/json' \
  -d '{"group_id":"<group_id>","name":"new-folder"}'
js
const res = await fetch('http://127.0.0.1:5700/create_group_file_folder', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    group_id: '<group_id>',
    name: 'new-folder'
  })
})

const body = await res.json()
console.log(body.data.folder_id)
py
import requests

resp = requests.post(
    "http://127.0.0.1:5700/create_group_file_folder",
    json={
        "group_id": "<group_id>",
        "name": "new-folder",
    },
    timeout=10,
)
resp.raise_for_status()
body = resp.json()
print(body["data"]["folder_id"])

错误码

retcode说明
1400参数错误,例如缺少 group_idname
1500创建失败。

注意事项

  • parent_id 参数接受但不生效,文件夹始终创建在根目录下。

删除群文件目录

  • API: delete_group_folder
  • 描述: 删除群文件系统中的一个文件夹。

请求参数

字段类型必填默认值说明
group_idnumber | string-群号。
folder_idstring-文件夹 ID。
json
{
  "group_id": "<group_id>",
  "folder_id": "<folder_id>"
}

响应参数

成功时 datanull

示例

bash
curl -X POST 'http://127.0.0.1:5700/delete_group_folder' \
  -H 'Content-Type: application/json' \
  -d '{"group_id":"<group_id>","folder_id":"<folder_id>"}'
js
const res = await fetch('http://127.0.0.1:5700/delete_group_folder', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    group_id: '<group_id>',
    folder_id: '<folder_id>'
  })
})

const body = await res.json()
console.log(body.status)
py
import requests

resp = requests.post(
    "http://127.0.0.1:5700/delete_group_folder",
    json={
        "group_id": "<group_id>",
        "folder_id": "<folder_id>",
    },
    timeout=10,
)
resp.raise_for_status()
body = resp.json()
print(body["status"])

错误码

retcode说明
1400参数错误,例如缺少 group_idfolder_id
1500删除失败。

上传群文件

  • API: upload_group_file
  • 描述: 上传一个文件到群文件系统。

请求参数

字段类型必填默认值说明
group_idnumber | string-群号。
filestring-文件路径。支持本地路径、file://http(s)://
namestring-在群文件中的展示名称。
folderstring"/"目标文件夹 ID。
json
{
  "group_id": "<group_id>",
  "file": "/path/to/file.zip",
  "name": "file.zip"
}

响应参数

成功时 datanull

示例

bash
curl -X POST 'http://127.0.0.1:5700/upload_group_file' \
  -H 'Content-Type: application/json' \
  -d '{"group_id":"<group_id>","file":"/path/to/file.zip","name":"file.zip"}'
js
const res = await fetch('http://127.0.0.1:5700/upload_group_file', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    group_id: '<group_id>',
    file: '/path/to/file.zip',
    name: 'file.zip'
  })
})

const body = await res.json()
console.log(body.status)
py
import requests

resp = requests.post(
    "http://127.0.0.1:5700/upload_group_file",
    json={
        "group_id": "<group_id>",
        "file": "/path/to/file.zip",
        "name": "file.zip",
    },
    timeout=10,
)
resp.raise_for_status()
body = resp.json()
print(body["status"])

错误码

retcode说明
1400参数错误,例如缺少 group_idfile
1500上传失败。

注意事项

  • file 支持本地文件路径、file:// URI 和 http(s):// URL(远程文件会先下载再上传)。
  • 本地文件路径按 icqq-rust-onebot 进程所在机器解析。

上传私聊文件

  • API: upload_private_file
  • 描述: 向好友发送离线文件。

请求参数

字段类型必填默认值说明
user_idnumber | string-接收方 QQ 号。
filestring-文件路径。支持本地路径、file://http(s)://
namestring-文件展示名称。
json
{
  "user_id": "<friend_id>",
  "file": "/path/to/file.zip",
  "name": "file.zip"
}

响应参数

成功时 datanull

示例

bash
curl -X POST 'http://127.0.0.1:5700/upload_private_file' \
  -H 'Content-Type: application/json' \
  -d '{"user_id":"<friend_id>","file":"/path/to/file.zip","name":"file.zip"}'
js
const res = await fetch('http://127.0.0.1:5700/upload_private_file', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    user_id: '<friend_id>',
    file: '/path/to/file.zip',
    name: 'file.zip'
  })
})

const body = await res.json()
console.log(body.status)
py
import requests

resp = requests.post(
    "http://127.0.0.1:5700/upload_private_file",
    json={
        "user_id": "<friend_id>",
        "file": "/path/to/file.zip",
        "name": "file.zip",
    },
    timeout=10,
)
resp.raise_for_status()
body = resp.json()
print(body["status"])

错误码

retcode说明
1400参数错误,例如缺少 user_idfile
1500上传失败。

注意事项

  • file 支持本地文件路径、file:// URI 和 http(s):// URL(远程文件会先下载再上传)。
  • 本地文件路径按 icqq-rust-onebot 进程所在机器解析。