前言


**AList同步QQ群文件源代码(js)是由晓艺提供,再由站长进行修改优化而来,进行了测试一周多时间,已经相当稳定,可以直接在青龙面板内部署,也可以直接使用node.js相关工具或者宝塔等部署。本JS代码适配的是Astralgocq**

优缺点


优点


- 可以将QQ群的文件夹结构同步至AList网盘内
- 可以将QQ群文件谁上传的也备注到同步到AList网盘内
- 支持多个QQ群文件同步
- 无需设置运行时间,运行脚本后会延迟自动下一次执行
- 文件过滤逻辑检查完整路径,避免重复上传
- 代码使用内存缓冲(Buffer)处理文件内容,上传完成后Node.js会自动回收内存,不会生成物理文件
- 代码内置流式处理机制,支持GB级大文件上传,内存占用始终保持在合理范围

缺点


- 目前代码只支持Astralgocq,暂不支持NTQQ,NapCat(因为所需要参数不同)

原理流程说明


file

API调用相关


Alist相关API


| 步骤 | API路径 | 方法 | 作用 | 代码位置 |
|---|---|---|---|---|
| 登录认证 | /api/auth/login | POST | 获取访问令牌 | getAlistToken() |
| 目录检查 | /api/fs/get | POST | 检查目录是否存在 | ensureDirectory() |
| 创建目录 | /api/fs/mkdir | POST | 创建新目录 | ensureDirectory() |
| 文件上传 | /api/fs/put | PUT | 上传二进制文件 | uploadFile() |
| 文件列表 | /api/fs/list | POST | 分页获取文件列表 | getAlistFiles() |

QQ机器人API (AstralGocq)


| 步骤 | API路径 | 方法 | 作用 | 代码位置 |
|---|---|---|---|---|
| 获取根文件 | /get_group_root_files | POST | 获取群根目录文件 | getGroupFilesRecursive() |
| 获取文件夹文件 | /get_group_files_by_folder | POST | 获取子目录文件 | getGroupFilesRecursive() |
| 获取下载链接 | /get_group_file_url | POST | 获取文件临时下载URL | processGroup()中的fileUrl获取 |

大致流程


1. 首先你要部署了Astralgocq,可以参考下面的两个文章进行部署,但是请注意请使用http通信!!!不要使用ws通信!!

【Astralgocq-Docker】Linux或者飞牛nas安装Docker版本astralgocq
前言
这次给大家安排上astralgocq项目的docker版本【https://github.com/ProtocolScience/AstralGocq 】,这是基于蓝波的项目打包的,更新不确定,尽量保持跟……

【AstralGocq】全新Go-cqhttp Linux操作AstralGocq登录QQ以及对接框架教程
前言
Astral-Gocq是由赵怡然(蓝波-zhaodice)接手GO-CQHTTP来维护,基于老版本GO-CQHTTP已经推出全新1.3版本。已经进入开发阶段,正在完成格式事件接收,预计……
2. 以上部署完毕后,还要本地有AList,可以参考官网进行部署【AList文档】,我是在飞牛nas里部署的,里面直接有相应的应用。
3. 然后我们在AList内创建存储,驱动就选择本机存储,挂载路径根据你自己的设定来,比如我的就直接是/群备份
4. 当然你要创建对应的文件夹,这里我以我的飞牛nas为例,在你需要的目录内创建文件夹,然后右键详情信息,复制他的原始路径,同步到AList配置里。
5. 且记得在飞牛nas里设置AList网盘允许访问的文件夹。

代码展示


**请根据注释填写对应内容!建议全部本地机!

此处内容需要**回复**后并刷新才能查看

效果图展示


青龙运行展示:


file

飞牛nas目录与AList展示:


file

file

Visual Studio Code运行展示:


file