一、前言:

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 版本:

bash
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:

coffeescript
1
npm i pm2 -g

2. 上传 SA 授权文件到 VPS,这里使用 /root/sa

3. 安装 GD-utils

bash
1
2
3
git clone https://github.com/iwestlin/gd-utils && cd gd-utils

npm install --unsafe-perm=true --allow-root

安装依赖时旧版本系统可能会出错,目前仅测试在 Digital Ocean 和 腾讯云 Debian 11 系统下使用 node 版本 v18.0.0,npm 版本 8.6.0 下可以成功安装。

4. 配置 config.js

arduino
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_secretrefresh_token 这三个变量,将其分别填入本项目下的 config.js 中,需要注意这三个值必须被成对的英文引号包裹,且引号后以英文逗号结尾,也就是需要符合 JavaScript 的对象语法

5. 启动 GD-utils

crmsh
1
pm2 start server.js --node-args="--max-old-space-size=1024"

代码运行后会在服务器监听 23333 端口。

axapta
1
2
3
4
pm2 logs #查看日志
pm2 l #查看守护进程列表
pm2 reload server #修改代码后需重启服务生效
pm2 stop 进程名称 #停止运行中的服务

若要开机自启服务,参考这篇文章

然后需要用 nginx 在本地起一个 web 服务反代 23333 端口,示例 nginx 配置:

nginx
1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
server_name your.server.name;

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:23333/;
}
}

如果你是小白,建议使用宝塔面板。

这里简单说一下流程:首先安装宝塔面板,官方脚本:https://www.bt.cn/new/download.html

软件商店搜索安装 nginx,默认版本,选择快速安装,

img

将域名解析到你服务器 ip 上,点击网站,新建站点,输入自己的域名,

img

在设置里申请 ssl 证书,并开启强制 https(必须步骤),

图片[1]-GD-utils(谷歌百宝箱)详细教程,快速转存Google Drive文件
img

点击反向代理,创建一个新的反向代理到 23333 端口

img

检查网站是否部署成功,可以命令行执行(请将 example.com 替换成你自己的网址):

nginx
1
curl 'https://example.com/api/gdurl/count?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg'

返回 gd-utils 成功启动 说明部署成功。

最后执行:

powershell
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,如果它回复给你使用帮助,那就配置成功了。