众所周知,onedrive有例如OneList、PyOne、OLAINDEX等多种目录列表程序,本文将用FileBrowser实现Google drive也具有类似功能。
准备
- 国外vps(要访问Google drive,kvm虚拟最好)
- Google drive
搭建
安装rclone
这里用Rat's的一键脚本(能一键谁想手动,谁和方便过不去)#适用Debian/Ubuntu系统
wget https://www.moerats.com/usr/shell/rclone_debian.sh && bash rclone_debian.sh
#完成后初始化配置
rclone config
会出现以下信息:(时间不同可能会有出入)
2019/06/18 10:10:13 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n #新建
name> kenshin #名字随便填,但是要记住,后面要用到
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 / A stackable unification remote, which can appear to merge the contents of several remotes
\ "union"
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 / Hubic
\ "hubic"
14 / JottaCloud
\ "jottacloud"
15 / Koofr
\ "koofr"
16 / Local Disk
\ "local"
17 / Mega
\ "mega"
18 / Microsoft Azure Blob Storage
\ "azureblob"
19 / Microsoft OneDrive
\ "onedrive"
20 / OpenDrive
\ "opendrive"
21 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
22 / Pcloud
\ "pcloud"
23 / QingCloud Object Storage
\ "qingstor"
24 / SSH/SFTP Connection
\ "sftp"
25 / Webdav
\ "webdav"
26 / Yandex Disk
\ "yandex"
27 / http Connection
\ "http"
Storage> 12 #选择12,Google Drive
** See help for drive backend at: https://rclone.org/drive/ **
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a string value. Press Enter for the default ("").
client_id> #留空
Google Application Client Secret
Setting your own is recommended.
Enter a string value. Press Enter for the default ("").
client_secret> #留空
Scope that rclone should use when requesting access from drive.
Enter a string value. Press Enter for the default ("").
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> #留空
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/oauth2/auth?...... #复制到浏览器打开,登录需要挂载的谷歌账号
Log in and authorize rclone for access
Enter verification code> #填入上面获取到的验证码
Configure this as a team drive?
y) Yes
n) No
y/n> n #团队云盘,看需要填写,我没需要填了n
[kenshin]
type = drive
token = {"access_token":"ya29.GlsrB3Ub9qLFP2GP69KBmwyZRd-"}
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y #选择y
Current remotes:
Name Type
==== ====
kenshin 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退出
挂载为磁盘
#挂载为磁盘,DriveName为rclone的name,Folder为Google Drive里的文件夹,全部挂载就改为/,LocalFolder为VPS上的本地文件夹
rclone mount DriveName:Folder LocalFolder --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
#我选择新建本地文件夹作为本地挂载点
mkdir /root/GoogleDrive
查看是否挂载成功
root@kenshin:~# df -h #查看
Filesystem Size Used Avail Use% Mounted on
udev 235M 0 235M 0% /dev
tmpfs 50M 5.4M 44M 11% /run
/dev/mapper/vg_jh-root 5.4G 1.3G 3.9G 25% /
tmpfs 247M 0 247M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 247M 0 247M 0% /sys/fs/cgroup
/dev/vda1 464M 37M 399M 9% /boot
tmpfs 50M 0 50M 0% /run/user/0
kenshin: 1.0P 24T 1.0P 3% /root/GoogleDrive #出现这个即挂载成功
root@kenshin:~#
自启动(同采用Rat's的一键脚本)
wget https://www.moerats.com/usr/shell/rcloned && nano rcloned
#备用地址
https://raw.githubusercontent.com/Nokia-1208/Backup/master/rcloned
#修改以下内容:
#NAME="" #rclone name名,及配置时输入的Name
#REMOTE='' #远程文件夹,Google Drive网盘里的挂载的一个文件夹
#LOCAL='' #挂载地址,VPS本地挂载目录
使用命令设置自启:
#Debian系统
apt-get install sudo -y
#设置自启
mv rcloned /etc/init.d/rcloned
chmod +x /etc/init.d/rcloned
update-rc.d -f rcloned defaults
bash /etc/init.d/rcloned start
检测信息显示rclone启动成功即可。

安装 FileBrowser
File Browser 适用于全平台,任何操作系统都可以安装它。一条命令安装curl -fsSL https://filebrowser.xyz/get.sh | bash
github地址:https://github.com/filebrowser/filebrowser/
修改配置
创建配置数据库:filebrowser -d /etc/filebrowser.db config init
设置监听地址:filebrowser -d /etc/filebrowser.db config set --address 0.0.0.0
设置监听端口:filebrowser -d /etc/filebrowser.db config set --port 80
设置语言环境:filebrowser -d /etc/filebrowser.db config set --locale zh-cn
设置日志位置:filebrowser -d /etc/filebrowser.db config set --log /var/log/filebrowser.log
添加一个用户:filebrowser -d /etc/filebrowser.db users add root password --perm.admin
,其中的root和password分别是用户名和密码,根据自己的需求更改。
配置修改好以后,就可以启动 File Browser 了,使用-d参数指定配置数据库路径。
filebrowser -d /etc/filebrowser.db
在这里我用screen来启动,因为断开ssh会关闭程序。后面有解决办法,我没试
然后http://IP:监听端口/访问 File Browser

登录进入默认目录是根目录,设置-用户管理可以修改目录,我直接修改成挂载目录
你甚至可以看视频
可以上传,下载
网上资料补充(未测试)
File Browser 后台运行
第一种方法:运行:nohup filebrowser -d /etc/filebrowser.db >/dev/null 2>&1 &
停止运行:kill -9 $(pidof filebrowser)
开机启动:sed -i '/exit 0/i\nohup filebrowser -d /etc/filebrowser.db >/dev/null 2>&1 &' /etc/rc.local
取消开机启动:sed -i '/nohup filebrowser -d /etc/filebrowser.db >/dev/null 2>&1 &/d' /etc/rc.local
第二种方法:
首先下载 File Browser 的 service 文件:curl https://cdn.mivm.cn/www.mivm.cn/archives/filebrowser/filebrowser.service -o /lib/systemd/system/filebrowser.service
如果你的运行命令不是/usr/local/bin/filebrowser -d /etc/filebrowser.db
,需要对 service 文件进行修改,将文件的 ExecStart 改为你的运行命令,更改完成后需要输入systemctl daemon-reload
。
运行:systemctl start filebrowser.service
停止运行:systemctl stop filebrowser.service
开机启动:systemctl enable filebrowser.service
取消开机启动:systemctl disable filebrowser.service
查看运行状态:systemctl status filebrowser.service
HTTPS
File Browser 2.0 起开始内建 HTTPS 支持,只需要配置 SSL 证书即可。配置 SSL:filebrowser -d /etc/filebrowser.db config set --cert example.com.crt --key example.com.key
,其中example.com.crt
和example.com.key
分别是 SSL 证书和密钥路径,根据自身情况进行更改。配置完 SSL 后,只可以使用 HTTPS 访问,不可以使用 HTTP。
取消 SSL:filebrowser -d /etc/filebrowser.db config set --cert "" --key ""
当然,你也可以使用 Nginx 等 Web 服务器对 File Browser 进行反向代理,以达到 HTTPS 访问的目的。
还有就是使用 Caddy,这是一个开源、支持 HTTP/2 的 Web 服务器,它的一个显著特点就是默认启用 HTTPS 访问,会自己申请 SSL 证书,同时支持大量的插件,File Browser 就可以作为其插件运行。