Loading... <strong>说明:</strong><code>GoIndex</code>是一款部署在<code>Cloudflare Workers</code>的<code>Google Drive</code>目录索引程序,无需提供服务器,可以直接列出你谷歌网盘的所有文件,同时下载和访问也不需要挂梯子,也可以在线观看某些格式的视频文件,拿来玩玩也是可以的。 <div data-unique="截图"></div> <h2>截图</h2> <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/bcb5c-cfwk(11).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/bcb5c-cfwk(11).png" alt="请输入图片描述" style=""></a> <div data-unique="安装"></div> <h2>安装</h2> <strong>Github地址:</strong><a href="https://github.com/donwa/goindex" target="_blank" rel="noopener noreferrer">https://github.com/donwa/goindex</a> 首先肯定是需要一个谷歌网盘的,个人的话容量有点小,如果想容量大的,可以免费申请一个无限容量的<code>Google Drive</code>网盘,申请方法查看→<a href="http://www.502435.com/1265.html" target="_blank" rel="noopener noreferrer">传送门</a>。 这里直接使用作者提供的快速部署方法,由于使用的是<code>rclone</code>的<code>google api</code>,高峰期难免会出现点问题,后面也会说下使用自己的<code>api</code>部署方法。 <strong>1、获取Workers代码</strong> 先访问:<a href="https://installen.gd.workers.dev/" target="_blank" rel="noopener noreferrer">https://installen.gd.workers.dev/</a>,点击<code>GET AUTH CODE</code>,验证你的谷歌账号获取<code>Auth code</code>。 然后开始输入你的<code>Auth code</code>,其它可以先默认,然后点击<code>BUILD</code>获取你的代码。 开头的相关参数,可自行修改: <pre><code class="hljs python"><span class="hljs-comment">#站点名称</span> <span class="hljs-string">"siteName"</span>: <span class="hljs-string">"GoIndex"</span>, <span class="hljs-comment">#根目录访问密码,如不设置留空即可</span> <span class="hljs-string">"root_pass"</span>: <span class="hljs-string">"moerats"</span>, <span class="hljs-comment">#根目录ID,默认整个网盘文件夹,如果只想列出根目录某个文件夹,那么填入该文件夹ID即可。</span> <span class="hljs-string">"root"</span>: <span class="hljs-string">"root"</span></code></pre> 文件夹<code>ID</code>获取方法,点击根目录某个文件夹,地址栏为:<code>https://drive.google.com/drive/folders/1C4Aro</code>,则<code>1C4Aro</code>为文件夹<code>ID</code>。 <strong>2、部署到Workers</strong> 首先登录<code>cloudflare</code>,官网→<a href="https://www.cloudflare.com/" target="_blank" rel="noopener noreferrer">传送门</a>,然后首页右侧可以看到<code>Workers</code>入口。 <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/20803-cfwk(1).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/20803-cfwk(1).png" alt="请输入图片描述" style=""></a> 点进去后新建一个<code>Workers</code>子域名,也就是你的专属域名,填入确认后就更改不了了,所以别乱填。 <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/4c5ff-cfwk(2).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/4c5ff-cfwk(2).png" alt="请输入图片描述" style=""></a> 接下来点击<code>Create a Worker</code>创建一个<code>Worker</code>。 <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/9d5c3-cfwk(3).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/9d5c3-cfwk(3).png" alt="请输入图片描述" style=""></a> 把你之前获取的<code>Workers</code>代码粘贴进去,然后可以在左上角双击修改域名,再点击<code>Save and Deploy</code>即可。 <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/27d6c-cfwk(4).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/27d6c-cfwk(4).png" alt="请输入图片描述" style=""></a> 最后打开分配的子域名即可,此后修改配置可以自行修改<code>Workers</code>代码。 <div data-unique="绑定域名"></div> <h2>绑定域名</h2> 如果想绑定自己的域名,就需要先将自己的域名转到<code>cloudflare</code>,然后点自己的域名,解析一个<code>A</code>记录,<code>IP</code>地址随意。 <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/2c86e-cfwk(5).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/2c86e-cfwk(5).png" alt="请输入图片描述" style=""></a> 然后在上方找到<code>Workers</code>,选择后,点击页面下的<code>Add route</code>,进行如下设置。 <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/4b910-cfwk(6).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/4b910-cfwk(6).png" alt="请输入图片描述" style=""></a> 按照图中的格式,填上自己的域名,并选择对应的<code>Workers</code>程序即可。 <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/51128-cfwk(7).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/51128-cfwk(7).png" alt="请输入图片描述" style=""></a> <div data-unique="API部署"></div> <h2>API部署</h2> 这里也可以使用自己的<code>API</code>部署,好处就是安全点,高峰期也不容易爆炸,当然安装会麻烦点,如果不经常使用的话,还是建议用上面的方法快速部署。 <strong>1、获取GDrive客户端</strong> 先启用<code>Google Drive API</code>,启用地址:<a href="https://console.developers.google.com/apis/api/drive.googleapis.com/overview" target="_blank" rel="noopener noreferrer">点击进入</a>,注意这里使用个人账号操作。 <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/b5f57-cfwk(8).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/b5f57-cfwk(8).png" alt="请输入图片描述" style=""></a> 再创建一个<code>OAuth client ID</code>,创建地址:<a href="https://console.developers.google.com/apis/credentials/oauthclient" target="_blank" rel="noopener noreferrer">点击进入</a>。应用类型选择其他(<code>Other</code>),名称自己填,这里博主填的<code>GoIndex</code>。 <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/4a291-cfwk(9).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/4a291-cfwk(9).png" alt="请输入图片描述" style=""></a> 然后你会获得自己的客户端<code>ID</code>和客户端密钥,再复制下来。 <a class="light-link" href="http://www.502435.com/usr/uploads/2020/04/3833f-cfwk(10).png" data-fancybox="gallery" data-type="image" data-caption="请输入图片描述"><img title="请输入图片描述" src="http://www.502435.com/usr/uploads/2020/04/3833f-cfwk(10).png" alt="请输入图片描述" style=""></a> <strong>2、获取refresh_token</strong> 这里使用<code>Rclone</code>来获取<code>refresh_token</code>,先登录<code>VPS</code>,先安装依赖,使用命令: <pre><code class="hljs shell"><span class="hljs-meta">#</span><span class="bash">CentOS系统</span> yum install p7zip unzip -y <span class="hljs-meta">#</span><span class="bash">Debian/Ubuntu系统</span> apt install -y p7zip-full </code></pre> 再安装<code>Rclone</code>,使用命令: <pre><code class="hljs nginx"><span class="hljs-attribute">curl</span> https://rclone.org/install.sh | bash</code></pre> 开始配置,使用命令: <pre><code class="hljs nginx"><span class="hljs-attribute">rclone</span> config</code></pre> 会出现以下信息: <pre><code class="hljs sql">n) New remote s) <span class="hljs-keyword">Set</span> configuration <span class="hljs-keyword">password</span> q) Quit config n/s/q> n <span class="hljs-keyword">name</span>> Rats #配置名称,随便填 <span class="hljs-keyword">Type</span> <span class="hljs-keyword">of</span> <span class="hljs-keyword">storage</span> <span class="hljs-keyword">to</span> configure. Enter a <span class="hljs-keyword">string</span> value. Press Enter <span class="hljs-keyword">for</span> the <span class="hljs-keyword">default</span> (<span class="hljs-string">""</span>). <span class="hljs-keyword">Choose</span> a <span class="hljs-built_in">number</span> <span class="hljs-keyword">from</span> below, <span class="hljs-keyword">or</span> <span class="hljs-keyword">type</span> <span class="hljs-keyword">in</span> your own <span class="hljs-keyword">value</span> <span class="hljs-number">1</span> / <span class="hljs-number">1</span>Fichier \ <span class="hljs-string">"fichier"</span> <span class="hljs-number">2</span> / <span class="hljs-keyword">Alias</span> <span class="hljs-keyword">for</span> an existing remote \ <span class="hljs-string">"alias"</span> <span class="hljs-number">3</span> / Amazon Drive \ <span class="hljs-string">"amazon cloud drive"</span> <span class="hljs-number">4</span> / Amazon S3 Compliant <span class="hljs-keyword">Storage</span> Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM <span class="hljs-keyword">COS</span>, Minio, etc) \ <span class="hljs-string">"s3"</span> <span class="hljs-number">5</span> / Backblaze B2 \ <span class="hljs-string">"b2"</span> <span class="hljs-number">6</span> / Box \ <span class="hljs-string">"box"</span> <span class="hljs-number">7</span> / <span class="hljs-keyword">Cache</span> a remote \ <span class="hljs-string">"cache"</span> <span class="hljs-number">8</span> / Dropbox \ <span class="hljs-string">"dropbox"</span> <span class="hljs-number">9</span> / <span class="hljs-keyword">Encrypt</span>/<span class="hljs-keyword">Decrypt</span> a remote \ <span class="hljs-string">"crypt"</span> <span class="hljs-number">10</span> / <span class="hljs-keyword">FTP</span> <span class="hljs-keyword">Connection</span> \ <span class="hljs-string">"ftp"</span> <span class="hljs-number">11</span> / Google Cloud <span class="hljs-keyword">Storage</span> (this <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> Google Drive) \ <span class="hljs-string">"google cloud storage"</span> <span class="hljs-number">12</span> / Google Drive \ <span class="hljs-string">"drive"</span> <span class="hljs-number">13</span> / Google Photos \ <span class="hljs-string">"google photos"</span> <span class="hljs-number">14</span> / Hubic \ <span class="hljs-string">"hubic"</span> <span class="hljs-number">15</span> / JottaCloud \ <span class="hljs-string">"jottacloud"</span> <span class="hljs-number">16</span> / Koofr \ <span class="hljs-string">"koofr"</span> <span class="hljs-number">17</span> / <span class="hljs-keyword">Local</span> Disk \ <span class="hljs-string">"local"</span> <span class="hljs-number">18</span> / Mega \ <span class="hljs-string">"mega"</span> <span class="hljs-number">19</span> / Microsoft Azure <span class="hljs-built_in">Blob</span> <span class="hljs-keyword">Storage</span> \ <span class="hljs-string">"azureblob"</span> <span class="hljs-number">20</span> / Microsoft OneDrive \ <span class="hljs-string">"onedrive"</span> <span class="hljs-number">21</span> / OpenDrive \ <span class="hljs-string">"opendrive"</span> <span class="hljs-number">22</span> / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH) \ <span class="hljs-string">"swift"</span> <span class="hljs-number">23</span> / Pcloud \ <span class="hljs-string">"pcloud"</span> <span class="hljs-number">24</span> / Put.io \ <span class="hljs-string">"putio"</span> <span class="hljs-number">25</span> / QingCloud <span class="hljs-keyword">Object</span> <span class="hljs-keyword">Storage</span> \ <span class="hljs-string">"qingstor"</span> <span class="hljs-number">26</span> / SSH/SFTP <span class="hljs-keyword">Connection</span> \ <span class="hljs-string">"sftp"</span> <span class="hljs-number">27</span> / <span class="hljs-keyword">Union</span> merges the <span class="hljs-keyword">contents</span> <span class="hljs-keyword">of</span> several remotes \ <span class="hljs-string">"union"</span> <span class="hljs-number">28</span> / Webdav \ <span class="hljs-string">"webdav"</span> <span class="hljs-number">29</span> / Yandex Disk \ <span class="hljs-string">"yandex"</span> <span class="hljs-number">30</span> / <span class="hljs-keyword">http</span> <span class="hljs-keyword">Connection</span> \ <span class="hljs-string">"http"</span> <span class="hljs-number">31</span> / premiumize.me \ <span class="hljs-string">"premiumizeme"</span> <span class="hljs-keyword">Storage</span>> <span class="hljs-number">12</span> #选择<span class="hljs-number">12</span>,Google Drive client_id> <span class="hljs-number">850428</span> #填上你的Google Drive客户端<span class="hljs-keyword">ID</span> client_secret> D72gPc #填上你的Google Drive客户端密匙 <span class="hljs-keyword">Choose</span> a <span class="hljs-built_in">number</span> <span class="hljs-keyword">from</span> below, <span class="hljs-keyword">or</span> <span class="hljs-keyword">type</span> <span class="hljs-keyword">in</span> your own <span class="hljs-keyword">value</span> <span class="hljs-number">1</span> / <span class="hljs-keyword">Full</span> <span class="hljs-keyword">access</span> all files, <span class="hljs-keyword">excluding</span> Application <span class="hljs-keyword">Data</span> Folder. \ <span class="hljs-string">"drive"</span> <span class="hljs-number">2</span> / <span class="hljs-keyword">Read</span>-<span class="hljs-keyword">only</span> <span class="hljs-keyword">access</span> <span class="hljs-keyword">to</span> <span class="hljs-keyword">file</span> metadata <span class="hljs-keyword">and</span> <span class="hljs-keyword">file</span> contents. \ <span class="hljs-string">"drive.readonly"</span> / <span class="hljs-keyword">Access</span> <span class="hljs-keyword">to</span> files created <span class="hljs-keyword">by</span> rclone only. <span class="hljs-number">3</span> | These <span class="hljs-keyword">are</span> <span class="hljs-keyword">visible</span> <span class="hljs-keyword">in</span> the drive website. | <span class="hljs-keyword">File</span> authorization <span class="hljs-keyword">is</span> revoked <span class="hljs-keyword">when</span> the <span class="hljs-keyword">user</span> deauthorizes the app. \ <span class="hljs-string">"drive.file"</span> / Allows <span class="hljs-keyword">read</span> <span class="hljs-keyword">and</span> write <span class="hljs-keyword">access</span> <span class="hljs-keyword">to</span> the Application <span class="hljs-keyword">Data</span> folder. <span class="hljs-number">4</span> | This <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> <span class="hljs-keyword">visible</span> <span class="hljs-keyword">in</span> the drive website. \ <span class="hljs-string">"drive.appfolder"</span> / Allows <span class="hljs-keyword">read</span>-<span class="hljs-keyword">only</span> <span class="hljs-keyword">access</span> <span class="hljs-keyword">to</span> <span class="hljs-keyword">file</span> metadata but <span class="hljs-number">5</span> | does <span class="hljs-keyword">not</span> <span class="hljs-keyword">allow</span> <span class="hljs-keyword">any</span> <span class="hljs-keyword">access</span> <span class="hljs-keyword">to</span> <span class="hljs-keyword">read</span> <span class="hljs-keyword">or</span> download <span class="hljs-keyword">file</span> content. \ <span class="hljs-string">"drive.metadata.readonly"</span> <span class="hljs-keyword">scope</span>> <span class="hljs-number">1</span> <span class="hljs-keyword">ID</span> <span class="hljs-keyword">of</span> the root folder Leave blank normally. Fill <span class="hljs-keyword">in</span> <span class="hljs-keyword">to</span> <span class="hljs-keyword">access</span> <span class="hljs-string">"Computers"</span> folders. (see docs). Enter a <span class="hljs-keyword">string</span> value. Press Enter <span class="hljs-keyword">for</span> the <span class="hljs-keyword">default</span> (<span class="hljs-string">""</span>). root_folder_id> Service <span class="hljs-keyword">Account</span> Credentials <span class="hljs-keyword">JSON</span> <span class="hljs-keyword">file</span> <span class="hljs-keyword">path</span> Leave blank normally. Needed <span class="hljs-keyword">only</span> <span class="hljs-keyword">if</span> you want <span class="hljs-keyword">use</span> SA instead <span class="hljs-keyword">of</span> interactive login. Enter a <span class="hljs-keyword">string</span> value. Press Enter <span class="hljs-keyword">for</span> the <span class="hljs-keyword">default</span> (<span class="hljs-string">""</span>). service_account_file> Edit <span class="hljs-keyword">advanced</span> config? (y/n) y) Yes n) <span class="hljs-keyword">No</span> y/n> n #输入n Remote config <span class="hljs-keyword">Use</span> <span class="hljs-keyword">auto</span> config? * Say Y <span class="hljs-keyword">if</span> <span class="hljs-keyword">not</span> sure * Say N <span class="hljs-keyword">if</span> you <span class="hljs-keyword">are</span> working <span class="hljs-keyword">on</span> a remote <span class="hljs-keyword">or</span> headless machine y) Yes n) <span class="hljs-keyword">No</span> y/n> n #输入n <span class="hljs-keyword">If</span> your browser doesn<span class="hljs-string">'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保存退出</span></code></pre> 此时我们在配置过程中就获取到了<code>refresh_token</code>参数,如果忘了的可以查看配置文件。 不知道配置文件在哪的,可以使用命令: <pre><code class="hljs nginx"><span class="hljs-attribute">rclone</span> config file | grep rclone.conf </code></pre> <strong>3、获取并修改Workers代码</strong> <code>Workers</code>代码可以点击该地址查看→<a href="https://github.com/donwa/goindex/blob/master/index.js" target="_blank" rel="noopener noreferrer">传送门</a>,先复制代码,部分修改可参考上面,不同的是,需要填上自己的<code>api</code>信息,如下: <pre><code class="hljs shell"><span class="hljs-meta">#</span><span class="bash">填上自己的api客户端,密匙和获取到的refresh_token</span> “client_id”:“20226481”, “client_secret”:“X4Z3ca8”, “refresh_token”:“”, </code></pre> 最后就可以部署<code>Workers</code>代码了,方法参考上面的快速部署。 最后修改:2022 年 08 月 02 日 © 允许规范转载 打赏 赞赏作者 赞 0 如果觉得我的文章对你有用,请随意赞赏