更新记录
20210906
Google Drive网盘挂载
前言
GoIndex
是一款部署在Cloudflare Workers
的Google Drive
目录索引程序,本篇介绍如何借助GoIndex+Cloudflare挂载Google Driver
步骤说明
1.注册google、cloudflare账号,构建要分享的网盘空间
2.选择goindex主题,随后依据官网提示录入信息获取到部署代码
3.在cloudflare worker进行部署
参考步骤
1.注册google、cloudflare账号
google:Google Driver(登录验证google权限,可获取一定免费额度)
cloudflare:cloudflare
2.goindex
可在github上选择goindex的主题,可参考goindex,其中提供了几种不用的方式构建
此处选择goindex-theme-acrou作为参考,如有网站打不开的情况可直接去对应github下查看其他策略
点击GoIndex Code Builder填充信息并获取部署的代码
PS:此处DriverID相对应文件夹,例如https://drive.google.com/drive/folders/xxx,可通过构建多个文件夹自定对要展示的内容进行分类,网站部署后默认以第一条记录作为初始化展示,可通过切换"不同的盘"(即不同的文件夹)进而进行权限、分类等管理
3.部署
登录cloudflare:进入Workers工作台,根据官网提示完成子域设定、付费计划确认、邮箱验证操作
子域设定:https://my-worker.**[子域名]**.workers.dev
随后创建服务->输入名称,选择任意模板(后续需自行编辑重新填充上述获取的代码信息)。创建完成,可选择进入指定服务,管理相关的资源信息(替换代码并保存部署即可)
上述操作执行完成,则验证部署是否成功,直接访问路由即可
扩展
完成上述步骤后基本就完成了Google Driver挂载的基础流程,但这种快速部署的操作在高峰期可能会有相应的访问限制,因此可以构建基于自己的api部署,其构建思路说明如下所示
<1>获取GDriver客户端需要借助Google Drive API,启用API后选择创建项目
<2>随后创建一个OAuth客户端 ID,构建完成获取相应的client_id、client_secret
<3>使用rclone获取refresh_token
点击rclone官网,下载需要的版本,随后解压项目并配置
cmd进入解压的目录,执行指令rclone config
,第一次构建按照提示输入n创建新的规则,随后填充信息
- name:名称(任意,可填项目名称)
- Storage:指定类型(找到对应Google Driver的编号信息,输入编号即可)
- client_id:在google cloud console创建应用生成client_id(也就是前面的步骤生成的客户端ID)
- client_secret:(前面的步骤生成的客户端secret)
- scope:确认完成,随后可选择访问的权限(此处授予所有文件的访问权限(一般是1),如需控制则自行相应调整权限等级即可)
- root_folder_id:(直接回车跳过)
- service_account_file:(直接回车跳过)
- 随后提问Edit advanced config?选择n即可;最后确认是否完成配置,选择Y后会自动弹出权限校验页面链接验证应用
可能存在的问题
- 链接跳转验证出现Error 400: redirect_uri_mismatch
参考提示,修改客户端的配置信息,调整授权的重定向URI(需要一段时间生效,官方预计5min左右),但发现还是无法正常响应
于是我在rclone官网中看到解决思路
参考上述解决思路我重新生成了凭据信息,再次重新配置相关的client_id、client_secret随后可正常响应,选择对应的用户授予权限
- 如果用户授权出现Error 403: access_denied
则说明该应用没有添加测试用户,需要相应添加测试用户
会提示应用未经验证,正常确认即可,校验成功则显示如下内容
如果got code失败,则是代理问题,需要设置代理(部分可能需要配置代理环境变量、重启系统后生效)
set http_proxy=127.0.0.1:端口号
set https_proxy=127.0.0.1:端口号
<4>调整代码,重新部署项目
如后续需要调整目录结构可参考前面的步骤生成数据,也可直接调整代码中的相关参数配置重新填充信息
var authConfig = {
client_id: "",
client_secret: "",
refresh_token: "", // 授权 token
}