背景说明
入职一家专注于网盘服务的公司。近期,为了对标迅雷海外的某个产品,需要开发一个类似的 bot,用于实现文件的自动转存功能。
主要难点与注意事项
-
官方 API 的限制
使用网盘官方 API 时存在下载大小限制,难以满足批量、大规模文件转存的实际需求。 -
自建 API 的特殊要求
- 自建 API 需提前单独申请对应的 API hash(接口授权码),且每个接口的 hash 需独立维护和管理。
- 自建 API 不支持通过 URL 直接访问文件,必须本地解析文件并通过接口处理。
搭建流程
1. 安装并启动 Telegram Bot API 服务
可通过 Docker 进行快速部署,示例命令如下:
docker run -d \
-p 8081:8081 \
--name telegram-bot-api \
-e TELEGRAM_API_ID=xxxxxx \
-e TELEGRAM_API_HASH=xxxxxx \
-e TELEGRAM_LOCAL=1 \ # 等价于 --local,启用“无限下载”等特性
-v telegram-bot-api-data:/var/lib/telegram-bot-api \
aiogram/telegram-bot-api:latest
注意事项:
- 服务只能监听
8081端口(该端口为内部指定,暂不支持修改)。 - 环境变量
TELEGRAM_LOCAL=1可开启本地“无限下载”等特性,适合自建场景。
2. 文件权限问题及修复
问题点 1:内部服务默认仅能使用 8081 端口,端口受限于平台指定。
问题点 2:内部服务生成的数据文件,其权限和外部服务不一致,可能导致外部服务无法访问或读取这些文件。
解决方案:
需要通过定时任务(如 crontab 调用 shell 脚本)自动修复文件目录权限,确保外部服务能正常读取、写入相关数据。示例脚本如下:
#!/bin/bash
# fix-permissions.sh
# 用于修复 Telegram Bot API 数据目录的权限问题
DATA_DIR="/home/webserver/app/go_telegram_bot_starter/telegram-api-data"
echo "🔧 正在修复目录权限..."
sudo chown -R webserver:nemo "$DATA_DIR"
chmod -R 755 "$DATA_DIR"
echo "✅ 权限修复完成!"
ls -la "$DATA_DIR"
建议将此脚本设置为定时任务,确保每隔一定时间自动校正目录权限,避免权限不同步导致的文件访问失败。