GoIndex: 无需服务器的Google Drive目录索引程序

转载文章GoIndex:一个无需服务器的Google Drive目录索引程序

说明:GoIndex是一款部署在Cloudflare WorkersGoogle Drive目录索引程序,无需提供服务器,可以直接列出你谷歌网盘的所有文件,同时下载和访问也不需要挂梯子,也可以在线观看某些格式的视频文件,拿来玩玩也是可以的。

截图

搭建成功主页演示

在线播放演示

安装

Github地址:https://github.com/donwa/goindex

首先肯定是需要一个谷歌网盘的,个人的话容量有点小,如果想容量大的,可以免费申请一个无限容量的Google Drive网盘,申请方法查看→传送门

这里直接使用作者提供的快速部署方法,由于使用的是rclonegoogle api,高峰期难免会出现点问题,后面也会说下使用自己的api部署方法。

1、获取Workers代码
先访问:https://installen.gd.workers.dev/,点击`GET AUTH CODE,验证你的谷歌账号获取Auth code`。

然后开始输入你的Auth code,其它可以先默认,然后点击BUILD获取你的代码。

开头的相关参数,可自行修改:

1
2
3
4
5
6
#站点名称
"siteName": "GoIndex",
#根目录访问密码,如不设置留空即可
"root_pass": "moerats",
#根目录ID,默认整个网盘文件夹,如果只想列出根目录某个文件夹,那么填入该文件夹ID即可。
"root": "root"

文件夹ID获取方法,点击根目录某个文件夹,地址栏为:https://drive.google.com/drive/folders/1C4Aro,则1C4Aro为文件夹ID

2、部署到Workers

首先登录cloudflare,官网→传送门,然后首页右侧可以看到Workers入口。
请输入图片描述

点进去后新建一个Workers子域名,也就是你的专属域名,填入确认后就更改不了了,所以别乱填。
请输入图片描述
接下来点击Create a Worker创建一个Worker
请输入图片描述
把你之前获取的Workers代码粘贴进去,然后可以在左上角双击修改域名,再点击Save and Deploy即可。
请输入图片描述
最后打开分配的子域名即可,此后修改配置可以自行修改Workers代码。

绑定域名

如果想绑定自己的域名,就需要先将自己的域名转到cloudflare,然后点自己的域名,解析一个A记录,IP地址随意。
请输入图片描述
然后在上方找到Workers,选择后,点击页面下的Add route,进行如下设置。
请输入图片描述
按照图中的格式,填上自己的域名,并选择对应的Workers程序即可。
请输入图片描述

API部署

这里也可以使用自己的API部署,好处就是安全点,高峰期也不容易爆炸,当然安装会麻烦点,如果不经常使用的话,还是建议用上面的方法快速部署。到Google Developer Console进行如下操作。

1、获取GDrive客户端

首先需要选择一个项目,如果没有就先创建一个,然后启用Google Drive API,启用地址:点击进入,注意这里使用个人账号操作。
请输入图片描述
再创建一个OAuth client ID,创建地址:点击进入。应用类型选择其他(Other),名称自己填,这里博主填的GoIndex
请输入图片描述
然后你会获得自己的客户端ID和客户端密钥,再复制下来。
请输入图片描述

2、获取refresh_token
这里使用Rclone来获取refresh_token,先登录VPS,先安装依赖,使用命令:

1
2
3
4
#CentOS系统
yum install p7zip unzip -y
#Debian/Ubuntu系统
apt install -y p7zip-full

再安装Rclone,使用命令:

1
curl https://rclone.org/install.sh | bash

开始配置,使用命令:

1
rclone config

会出现以下信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> Rats #配置名称,随便填
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / 1Fichier
\ "fichier"
2 / Alias for an existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
\ "s3"
5 / Backblaze B2
\ "b2"
6 / Box
\ "box"
7 / Cache a remote
\ "cache"
8 / Dropbox
\ "dropbox"
9 / Encrypt/Decrypt a remote
\ "crypt"
10 / FTP Connection
\ "ftp"
11 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
12 / Google Drive
\ "drive"
13 / Google Photos
\ "google photos"
14 / Hubic
\ "hubic"
15 / JottaCloud
\ "jottacloud"
16 / Koofr
\ "koofr"
17 / Local Disk
\ "local"
18 / Mega
\ "mega"
19 / Microsoft Azure Blob Storage
\ "azureblob"
20 / Microsoft OneDrive
\ "onedrive"
21 / OpenDrive
\ "opendrive"
22 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
23 / Pcloud
\ "pcloud"
24 / Put.io
\ "putio"
25 / QingCloud Object Storage
\ "qingstor"
26 / SSH/SFTP Connection
\ "sftp"
27 / Union merges the contents of several remotes
\ "union"
28 / Webdav
\ "webdav"
29 / Yandex Disk
\ "yandex"
30 / http Connection
\ "http"
31 / premiumize.me
\ "premiumizeme"
Storage> 12 #选择12,Google Drive
client_id> 850428 #填上你的Google Drive客户端ID
client_secret> D72gPc #填上你的Google Drive客户端密匙
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
\ "drive"
2 / Read-only access to file metadata and file contents.
\ "drive.readonly"
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ "drive.file"
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ "drive.appfolder"
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ "drive.metadata.readonly"
scope> 1
ID of the root folder
Leave blank normally.
Fill in to access "Computers" folders. (see docs).
Enter a string value. Press Enter for the default ("").
root_folder_id>
Service Account Credentials JSON file path
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default ("").
service_account_file>
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n #输入n
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n #输入n
If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/ #打开该地址获取code
Log in and authorize rclone for access
Enter verification code>hjdd #输入你获取到的code
Configure this as a team drive?
y) Yes
n) No
y/n> n #输入n
--------------------
[Rats]
type = drive
client_id = 85042871
client_secret = D72gPc
scope = drive
token = {"access_token":"y902Z"} #记住里面的refresh_token参数
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y #输入y
Current remotes:

Name Type
==== ====
Rats drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q #输入q保存退出

此时我们在配置过程中就获取到了refresh_token参数,如果忘了的可以查看配置文件。

不知道配置文件在哪的,可以使用命令:

1
rclone config file | grep rclone.conf

3、获取并修改Workers代码
Workers代码可以点击该地址查看→传送门,先复制代码,部分修改可参考上面,不同的是,需要填上自己的api信息,如下:

1
2
3
4
#填上自己的api客户端,密匙和获取到的refresh_token
“client_id”:“20226481”,
“client_secret”:“X4Z3ca8”,
“refresh_token”:“”,

最后就可以部署Workers代码了,方法参考上面的快速部署。