【AList】利用Astralgocq来同步QQ群的文件到AList网盘

前言

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

代码展示

请根据注释填写对应内容!建议全部本地机!
此处内容需要回复后并刷新才能查看

效果图展示

青龙运行展示:

file

飞牛nas目录与AList展示:

file
file

Visual Studio Code运行展示:

file

阅读剩余
THE END