介绍

SaveAny-Bot 是一个可将 Telegram 文件快速保存到多种存储端(如 Alist、本地磁盘、WebDAV 等)的机器人工具。支持处理限制保存的频道文件,灵活适配 Docker、Linux/Windows 二进制文件、OpenWrt 路由器甚至手机部署,让文件管理更高效。

GitHub开源地址:https://github.com/krau/SaveAny-Bot/

核心功能

  • 多存储支持:无缝对接 Alist、WebDAV、本地磁盘等存储方案
  • 突破限制:支持保存 Telegram 频道中「禁止转发」的公开文件
  • 跨平台部署:提供 Docker、二进制文件、OpenWrt 专用脚本等多种部署方式
  • 极简操作:发送文件或链接即可自动转存,支持图片和任意文件类型

部署指南(参见:GitHub

从二进制文件部署

  1. Release 页面下载对应平台的二进制文件。
  2. 在解压后的目录中新建 config.toml 文件,并参考 config.example.toml 编辑配置文件。
  3. 运行以下命令:

    chmod +x saveany-bot
    ./saveany-bot
添加为 systemd 服务
  1. 创建文件 /etc/systemd/system/saveany-bot.service 并写入以下内容:

    [Unit]
    Description=SaveAnyBot
    After=systemd-user-sessions.service
    
    [Service]
    Type=simple
    WorkingDirectory=/yourpath/
    ExecStart=/yourpath/saveany-bot
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  2. 设为开机启动并启动服务:

    systemctl enable --now saveany-bot
为 OpenWrt 及衍生系统添加开机自启动服务
  1. 创建文件 /etc/init.d/saveanybot,参考 saveanybot 自行修改。
  2. 运行以下命令:

    chmod +x /etc/init.d/saveanybot
  3. 将文件复制到 /etc/rc.d 并重命名为 S99saveanybot
  4. 运行以下命令:

    chmod +x /etc/rc.d/S99saveanybot
为 OpenWrt 及衍生系统添加快捷指令
  1. 创建文件 /usr/bin/sabot,参考 sabot 自行配置修改,注意此处文件编码仅支持 ANSI 936。
  2. 运行以下命令:

    chmod +x /usr/bin/sabot
  3. 之后,终端输入 sabot start|stop|restart|status|enable|disable 即可。

使用 Docker 部署

Docker Compose
  1. 下载 docker-compose.yml 文件,在同目录下新建 config.toml 文件,参考 config.example.toml 编辑配置文件。
  2. 启动:

    docker compose up -d
Docker
  1. 运行以下命令:

    docker run -d --name saveany-bot \
        -v /path/to/config.toml:/app/config.toml \
        -v /path/to/downloads:/app/downloads \
        ghcr.io/krau/saveany-bot:latest

更新

使用 upgradeup 升级到最新版

  1. 运行以下命令:

    ./saveany-bot upgrade

如果是 Docker 部署,使用以下命令更新:

  1. 运行以下命令:

    docker pull ghcr.io/krau/saveany-bot:latest
    docker restart saveany-bot

使用方法

  1. 发送文件
    直接向机器人发送或转发文件,根据提示选择存储位置。
  2. 处理频道文件
    发送公开频道的消息链接(如 https://t.me/channel/123),机器人将自动解析并保存。
  3. 多存储切换
    若配置了多个存储端,保存时会提供选项供选择。

注意事项

  • 首次使用需在 config.toml 中正确配置 Telegram API 和存储端参数。
  • 若使用 Alist,确保存储端已正确挂载且网络可访问。
  • OpenWrt 部署时注意脚本编码需为 ANSI 936(避免中文乱码)。

发表评论