【AList】利用Astralgocq来同步QQ群的文件到AList网盘
前言
AList同步QQ群文件源代码(js)是由晓艺
提供,再由站长进行修改优化
而来,进行了测试一周多
时间,已经相当稳定
,可以直接在青龙面板
内部署,也可以直接使用node.js
相关工具或者宝塔
等部署。本JS代码适配的是Astralgocq
优缺点
优点
- 可以将QQ群的文件夹结构同步至AList网盘内
- 可以将QQ群文件谁上传的也备注到同步到AList网盘内
- 支持多个QQ群文件同步
- 无需设置运行时间,运行脚本后会延迟自动下一次执行
- 文件过滤逻辑检查完整路径,避免重复上传
- 代码使用内存缓冲(Buffer)处理文件内容,上传完成后Node.js会自动回收内存,不会生成物理文件
- 代码内置流式处理机制,支持GB级大文件上传,内存占用始终保持在合理范围
缺点
- 目前代码只支持Astralgocq,暂不支持NTQQ,NapCat(因为所需要参数不同)
原理流程说明
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获取 |
大致流程
- 首先你要部署了Astralgocq,可以参考下面的两个文章进行部署,但是请注意请使用http通信!!!不要使用ws通信!!
- 以上部署完毕后,还要本地有AList,可以参考官网进行部署【AList文档】,我是在飞牛nas里部署的,里面直接有相应的应用。
- 然后我们在AList内创建存储,驱动就选择本机存储,挂载路径根据你自己的设定来,比如我的就直接是/群备份
- 当然你要创建对应的文件夹,这里我以我的飞牛nas为例,在你需要的目录内创建文件夹,然后右键
详情信息
,复制他的原始路径
,同步到AList配置里。
- 且记得在飞牛nas里设置AList网盘
允许访问
的文件夹。
代码展示
请根据注释填写对应内容!建议全部本地机!
效果图展示
青龙运行展示:
飞牛nas目录与AList展示:
Visual Studio Code运行展示:
阅读剩余
版权声明:
作者:落幕
链接:https://lmu5.com/alist-qq.html
文章版权归作者所有,未经允许请勿转载。
THE END