WebDAV简介
WebDAV 基于 HTTP 协议的通信协议,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
WebDAV客户端
Windows挂载/映射
- 开启服务: 从
计算机管理
-服务和应用程序
-服务
找到WebClient
。启动服务,并设置启动类型为自动
- 挂载: 打开
计算机
,点右键添加一个网络位置
,按向导填入地址,用户名,密码。
也可用命令直接挂载:
net use Y: https://dav.engr-z.com:5006/ /user:yourname /persistent:YES yourpassword
其中 yourname
和 yourpassword
替换成实际的用户名和密码
/persistent
表示保存映射,下次开机还在。
执行完,打开资源管理器,可以看到磁盘映射了。
如果下次开机,发现不能打开磁盘,访问失败,可以检查 WebClient 服务是否开启。
修改文件大小限制
在某些版本的 Windows 操作系统中,WebDAV 驱动器的最大文件大小被限制为 50MB。如果你试图复制超过 50MB 大小的文件,Windows 就会弹出错误提示框。
错误 `0x800700DF:` 文件大小超出允许限制,无法保存
这个限制可以通过修改注册表消除:
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\FileSizeLimitInBytes
FileSizeLimitInBytes
键值由 50000000(50MB)
修改为更大的值。最大值为: 十六进制: ffffffff
或 十进制: 4294967295
即 4G
使用 net use 命令删除访问位置和凭据
# 清除所有的访问连接以及对应的账户信息;
net use * /del
net use \\192.168.0.8 /delete
net use \\192.168.0.8\sharedir /delete
# 使用指定的账户和密码,访问网络共享;
net use \\192.168.0.8 yourPassword /user:yourname
Linux客户端挂载
安装服务:
apt install davfs2
挂载:
sudo mount -t davfs http://dav.engr-z/ ./webdav/
第三方客户端 RaiDrive
RaiDrive 是一款能够将一些网盘映射为本地网络磁盘的工具,支持 Google Drive、Google Photos、Dropbox、OneDrive、FTP、SFTP、WebDAV。
据说使用 RaiDrive
,没有 http 和 上传文件大小限制,无需修改注册表。
WebDAV服务端
文件大小限制
如果是基于 Nginx
转发 WebDAV
请求,默认限制上次文件在 1M
内。
在配置文件添加: client_max_body_size 4096M;
配置
基于Nginx的 WebDAV Server
在Nginx中实现WebDAV需要安装 libnginx-mod-http-dav-ext
模块,apt install libnginx-mod-http-dav-ext
以下是Nginx的配置:
server {
listen 80;
listen [::]:80;
server_name dav.engr-z.com;
auth_basic "Authorized Users Only";
auth_basic_user_file /etc/.htpasswd;
location / {
root /data/webdav;
client_body_temp_path /var/temp;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
create_full_put_path on;
client_max_body_size 10G;
}
}
server {
listen 443;
listen [::]:443;
server_name dav.engr-z.com;
ssl on;
ssl_certificate /data/www/cert/dav.engr-z.com_nginx/cert.pem;
ssl_certificate_key /data/www/cert/dav.engr-z.com_nginx/cert.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
root /data/webdav;
client_body_temp_path /var/temp;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
create_full_put_path on;
client_max_body_size 10G;
}
}
基于Go的 WebDAV Server:
网络存储文件共享之WebDAV https://zhuanlan.zhihu.com/p/352216119
无法访问网络共享怎么办?教你一个“必杀技” https://zhuanlan.zhihu.com/p/474532352
Nginx 反向代理 WebDAV 服务 不能上传、新建、重命名文件及文件夹的解决办法 https://blog.csdn.net/qq_44937183/article/details/120566252
使用Nginx搭建WebDAV文件服务器 https://candyraws.github.io/posts/nginx-webdav/
nginx配置功能完整的webdav服务器 https://opswill.com/articles/ngnix-full-webdav-server-setup.
nginx webdav模块实现http协议上传文件 https://blog.csdn.net/qq_43164571/article/details/121207554