GoIndex
是一款部署在Cloudflare Workers
的Google Drive
目录索引程序,无需提供服务器,可以直接列出你谷歌网盘的所有文件,同时下载和访问也不需要挂梯子,也可以在线观看某些格式的视频文件
美化版地址 :https://github.com/icicy/goindex
API部署
先启用Google Drive API
,启用地址:点击进入,注意这里使用个人账号操作。
再创建一个OAuth client ID
,创建地址:点击进入。应用类型选择其他(Other
),名称自己填,这里博主填的GoIndex
。
然后你会获得自己的(Client ID)客户端ID
和(Client_secret)客户端密钥,再复制下来。
1 2 3 4 5 6 7 8 9 |
const authConfig = { "siteName": "GoIndex", // 网站名称 "version": "_4.28", // 程序版本。用户不要手动修改 /*"client_id": "202264815644.apps.googleusercontent.com", "client_secret": "X4Z3ca8xfWDb1Voo-F9a7ZxJ",*/ // 【注意】强烈推荐使用自己的 client_id 和 client_secret "client_id": "", "client_secret": "", "refresh_token": "", // 授权 token |
获取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 Cloud Storage (this is not Google Drive) \ "google cloud storage" 13/ Google Drive \ "drive" 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> 13 #选择13,Google Drive,注意该序列号会随时变化,看清楚再填 client_id> xxxxxxx2ikuhvgs1p.apps.googleusercontent.com #填上你的Google Drive客户端ID client_secret> Y9snaLPnxxxxx5hnjbeSKJizW #填上你的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 |
获取并修改Workers代码
Workers
代码可以点击先复制代码,部分修改可参考上面,不同的是,需要填上自己的api
信息,如下:
1 2 3 4 |
#填上自己的api客户端,密匙和获取到的refresh_token “client_id”:“20226481”, “client_secret”:“X4Z3ca8”, “refresh_token”:“”, |
获取团队盘ID
部署到Workers
首先登录cloudflare
,官网→传送门,然后首页右侧可以看到Workers
入口。
接下来点击Create a Worker
创建一个Worker
。
点进去后新建一个Workers
子域名,也就是你的专属域名,填入确认后就更改不了了,所以别乱填。
把你之前获取的Workers
代码(index.js)粘贴进去,然后可以在左上角双击修改域名,再点击Save and Deploy(保存及部署)
即可
最后打开分配的子域名即可,此后修改配置可以自行修改Workers
代码。
绑定域名
如果想绑定自己的域名,就需要先将自己的域名转到cloudflare
,然后点自己的域名,解析一个A
记录,IP
地址随意。
然后在上方找到Workers
,选择后,点击页面下的Add route添加路由
,进行如下设置。
按照格式,填上自己的域名,并选择对应的Workers
程序即可。