GD-utils(谷歌百宝箱)详细教程,快速转存 Google Drive 文件
一、前言:
1. 本教程是建立在已有 SA 授权文件基础上的,若没有授权文件,先戳这里:通过 AutoRclone 批量生成 SA 文件。
2. 本文所使用环境为 DigitalOcean 的 Debian 11。
DigitalOcean 注册地址:https://m.do.co/c/76209bc8b100 (注册即可获得 100 刀的额度,可使用 60 天)
3. 与 iCopy 不同的是,GD-utils 并不依赖 rclone、fclone,具体介绍请看官方说明:
https://github.com/iwestlin/gd-utils/blob/master/compare.md
4. 原项目已在 github 开源,项目地址:https://github.com/iwestlin/gd-utils
5. 需要准备一个域名,解析到自己服务器 ip 上。
6. 本项目需要一定耐心和细心。
二、部署教程
1. 搭建环境
项目使用 nodejs 编写,需要安装 nodejs 环境,建议使用 nvm 来管理 node 版本:
1 | wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash && source ~/.bashrc && nvm install node && node -v && npm -v |
安装 pm2:
1 | npm i pm2 -g |
2. 上传 SA 授权文件到 VPS,这里使用 /root/sa
3. 安装 GD-utils
1 | git clone https://github.com/iwestlin/gd-utils && cd gd-utils |
安装依赖时旧版本系统可能会出错,目前仅测试在 Digital Ocean 和 腾讯云 Debian 11 系统下使用 node 版本 v18.0.0,npm 版本 8.6.0 下可以成功安装。
4. 配置 config.js
1 | nano config.js |
需要修改的有:
const DEFAULT_TARGET = ‘团队盘 ID’
client_id: ‘填入自建 rclone client id’,
client_secret: ‘填入自建 rclone client secret’,
refresh_token: ‘刷新令牌’,
tg_token: ‘你的 telegram robot 的 token’,
tg_whitelist: [‘你的 tg username’] //bot 只会执行这个列表里的用户所发送的指令
自建 client id 和 secret 很简单,参考这篇文章。
用 rclone 配置一遍团队盘,然后命令行执行 rclone config file
找到 rclone 的配置文件路径,打开这个配置文件 rclone.conf
, 找到 client_id
, client_secret
和 refresh_token
这三个变量,将其分别填入本项目下的 config.js
中,需要注意这三个值必须被成对的英文引号包裹,且引号后以英文逗号结尾,也就是需要符合 JavaScript 的对象语法
5. 启动 GD-utils
1 | pm2 start server.js --node-args="--max-old-space-size=1024" |
代码运行后会在服务器监听 23333 端口。
1 | pm2 logs |
若要开机自启服务,参考这篇文章。
然后需要用 nginx 在本地起一个 web 服务反代 23333 端口,示例 nginx 配置:
1 | server { |
如果你是小白,建议使用宝塔面板。
这里简单说一下流程:首先安装宝塔面板,官方脚本:https://www.bt.cn/new/download.html
软件商店搜索安装 nginx,默认版本,选择快速安装,
将域名解析到你服务器 ip 上,点击网站,新建站点,输入自己的域名,
在设置里申请 ssl 证书,并开启强制 https(必须步骤),
点击反向代理,创建一个新的反向代理到 23333 端口
检查网站是否部署成功,可以命令行执行(请将 example.com 替换成你自己的网址):
1 | curl 'https://example.com/api/gdurl/count?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg' |
返回 gd-utils 成功启动 说明部署成功。
最后执行:
1 | curl -F "url=https://example.com/api/gdurl/tgbot" 'https://api.telegram.org/botYOUR_BOT_TOKEN/setWebhook' |
如果返回 {“ok”:true,”result”:true,”description”:”Webhook was set”} ,则说明你的服务器连接上你的 bot 了,给自己的电报机器人发送 /help,如果它回复给你使用帮助,那就配置成功了。