重要
目前主流的网盘系统都支持WebDAV连接方式,在windows系统下链接WebDAV以及是很常见的事情,如果能在Linux下链接WebDAV变成本地磁盘,那么可以把部分文件放置在WebDAV空间,甚至还可以通过网页转成外链链接。
1.简介
常用的文件共享协议有三种:FTP、Samba、WebDAV
WebDAV 基于 HTTP 协议的通信协议,在广域网上共享文件有天然的优势,移动端文件管理APP也大多支持WebDAV协议。使用HTTPS还能保安全性。Apache和Nginx支持WebDAV,可作为WebDAV文件共享服务器软件。也可以使用专门的WebDAV软件部署。
webdav 是 GitHub 上开源的项目,基于 Go 语言实现,不仅跨平台,还支持 ARM 架构,可在㠌入式设备中部署 WebDAV 服务器。
2. 操作
2.1 运行阿里云盘-webDAV
环境准备
1. 参数说明
变量名称 | 描述 | 示例 |
---|---|---|
ALIYUNPAN_REFRESH_TOKEN | RefreshToken | 024534dbe2384807b24abfd1ab84fd7d |
ALIYUNPAN_AUTH_USER | webdav登录用户名,随意设置,磁盘挂载的时候使用 | admin |
ALIYUNPAN_AUTH_PASSWORD | webdav登录密码,随意设置,磁盘挂载的时候使用 | admin |
ALIYUNPAN_PAN_DIR | 网盘文件夹的webdav服务根目录 | / |
ALIYUNPAN_TRANSFER_URL_TYPE | 上传下载链接类型:1-默认 2-阿里ECS环境(ECS必须是经典网络类型) | 1 |
ALIYUNPAN_BLOCK_SIZE | 上传数据块大小,单位为KB,默认为1024KB,建议范围1024KB~10240KB | 10240 |
2. 获取refresh-token
![](/images/post-image/how-to-get-refresh-token.png)
3. https配置(可选)
nginx配置
|
|
部署
1. docker-run部署
|
|
2. docker-compose部署
|
|
2.2 挂载webdav
1. 安装davfs2工具
centos
|
|
ubuntu
|
|
2. 挂载磁盘
执行命令后,按提示输入用户名密码(ALIYUNPAN_AUTH_USER和ALIYUNPAN_AUTH_PASSWORD的值)
|
|
3. 设置开机自动挂载
- 编辑davfs2.conf配置文件,将use_locks的1改为0
|
|
- 修改secrets文件,添加账号信息
普通用户可以修改此文件
~/.davfs2/secrets
|
|
在底部添加账号信息,如
|
|
- 添加开机挂载命令
在
/etc/rc.d/rc.local
文件或者/etc/profile.d/aliyundisk.sh
中追加下面内容开机自动运行的几种方法:
/etc/rc.d/rc.local
: 文件会在 Linux 系统各项服务都启动完毕之后再被运行
crontab @rebot
: 任务在系统重启之后自动运行某个命令
systemd
:适用systemd系统
/etc/profile.d/xx.sh
: /etc/profile会遍历/etc/profile.d/*.sh
/etc/profile
: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d
目录的配置文件中搜集shell的设置。/etc/bashrc
: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。~/.bash_profile
: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc
文件。~/.bashrc
: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。你可以在这里设置你的个性化终端了.~/.bash_logout
: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile
中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是**”父子”关系**。~/.bash_profile
: 是交互式、login 方式进入 bash 运行的。~/.bashrc 是交互式 non-login 方式
进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。
|
|
4. 避坑
不能通过/etc/fstab
的auto选项, 实现开机自动挂载
|
|
因为/etc/fstab
在网络初始化之前执行,只有在建立网络连接之后才能装载webDAV共享,所以不能auto在/etc/fstab文件中使用该选项。自动挂载将失败。