前言

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/loginPOST获取访问令牌getAlistToken()
目录检查/api/fs/getPOST检查目录是否存在ensureDirectory()
创建目录/api/fs/mkdirPOST创建新目录ensureDirectory()
文件上传/api/fs/putPUT上传二进制文件uploadFile()
文件列表/api/fs/listPOST分页获取文件列表getAlistFiles()

QQ机器人API (AstralGocq)

步骤API路径方法作用代码位置
获取根文件/get_group_root_filesPOST获取群根目录文件getGroupFilesRecursive()
获取文件夹文件/get_group_files_by_folderPOST获取子目录文件getGroupFilesRecursive()
获取下载链接/get_group_file_urlPOST获取文件临时下载URLprocessGroup()中的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版本。已经进入开发阶段,正在完成格式事件接收,预计……

  1. 以上部署完毕后,还要本地有AList,可以参考官网进行部署【AList文档】,我是在飞牛nas里部署的,里面直接有相应的应用。
  2. 然后我们在AList内创建存储,驱动就选择本机存储,挂载路径根据你自己的设定来,比如我的就直接是/群备份
  3. 当然你要创建对应的文件夹,这里我以我的飞牛nas为例,在你需要的目录内创建文件夹,然后右键详情信息,复制他的原始路径,同步到AList配置里。
  4. 且记得在飞牛nas里设置AList网盘允许访问的文件夹。

代码展示

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

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

效果图展示

青龙运行展示:

file

飞牛nas目录与AList展示:

file

file

Visual Studio Code运行展示:

file