# WebDAV扩展

Seafile WebDAV Server(SeafDAV)在Seafile Server 2.1.0版本中被加入.

在下面的维基中, 我们假设你将Seafile安装到`/data/haiwen`目录下。

### SeafDAV配置

SeafDAV配置文件是`/data/haiwen/conf/seafdav.conf`. 如果它还没有被创建,你可以自行创建它。

~~~[WEBDAV]

# 默认值是false。改为true来使用SeafDAV server。

enabled = true

port = 8080

# 如果fastcgi将被使用则更改fastcgi的值为true。

fastcgi = false

# 如果你将seafdav部署到nginx/apache,你需要更改“share_name”的值。

share_name = /

~~~

每次配置文件被修改后,你需要重启Seafile服务器使之生效。

~~~./seafile.sh restart

~~~

### 示例配置 1: No nginx/apache

你的WebDAV客户端将在地址`[http://example.com:8080](http://example.com:8080)`访问WebDAV服务器。

~~~[WEBDAV]

enabled = true

port = 8080

fastcgi = false

share_name = /

~~~

### 示例配置 2: With Nginx/Apache

你的WebDAV客户端将在地址`[http://example.com/seafdav](http://example.com/seafdav)`访问WebDAV服务器。

~~~[WEBDAV]

enabled = true

port = 8080

fastcgi = true

share_name = /seafdav

~~~

在上面的配置中,'''share_name'''的值被改为'''/seafdav''', 它是你指定给seafdav服务器的地址后缀。

#### Nginx 无 HTTPS

相应的Nginx配置如下 (无 https):

~~~ location /seafdav {

fastcgi_pass 127.0.0.1:8080;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_script_name;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

client_max_body_size 0;

access_log /var/log/nginx/seafdav.access.log;

error_log /var/log/nginx/seafdav.error.log;

}

~~~

#### Nginx 有 HTTPS

Nginx配置为https:

~~~ location /seafdav {

fastcgi_pass 127.0.0.1:8080;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_script_name;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

client_max_body_size 0;

fastcgi_param HTTPS on;

access_log /var/log/nginx/seafdav.access.log;

error_log /var/log/nginx/seafdav.error.log;

}

~~~

#### Apache

首先编辑 `apache2.conf` 文件, 添加如下这行到文件结尾(或者根据你的Linux发行版将其添加到 `httpd.conf`):

~~~FastCGIExternalServer /var/www/seafdav.fcgi -host 127.0.0.1:8080

~~~

注意, `/var/www/seafdav.fcgi` 仅仅只是一个占位符, 实际在你的系统并不需要有此文件。

第二, 修改Apache配置文件 (site-enabled/000-default):

#### Apache 无 HTTPS

根据你的Apache配置当你[将要部署 Seafile 和 Apache|已经部署 Seafile 和 Apache], 加入Seafdav的相关配置:

~~~

ServerName www.myseafile.com

DocumentRoot /var/www

Alias /media /home/user/haiwen/seafile-server/seahub/media

RewriteEngine On

#

# seafile fileserver

#

ProxyPass /seafhttp http://127.0.0.1:8082

ProxyPassReverse /seafhttp http://127.0.0.1:8082

RewriteRule ^/seafhttp - [QSA,L]

#

# seafile webdav

#

RewriteCond %{HTTP:Authorization} (.+)

RewriteRule ^(/seafdav.*)$ /seafdav.fcgi$1 [QSA,L,e=HTTP_AUTHORIZATION:%1]

RewriteRule ^(/seafdav.*)$ /seafdav.fcgi$1 [QSA,L]

#

# seahub

#

RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ /seahub.fcgi$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

~~~

#### Apache 有 HTTPS

根据你的apache配置当你[配置Seafile网站和Apache并启用Https](#), 加入seafdav的相关配置:

~~~

ServerName www.myseafile.com

DocumentRoot /var/www

Alias /media /home/user/haiwen/seafile-server/seahub/media

SSLEngine On

SSLCertificateFile /etc/ssl/cacert.pem

SSLCertificateKeyFile /etc/ssl/privkey.pem

RewriteEngine On

#

# seafile fileserver

#

ProxyPass /seafhttp http://127.0.0.1:8082

ProxyPassReverse /seafhttp http://127.0.0.1:8082

RewriteRule ^/seafhttp - [QSA,L]

#

# seafile webdav

#

RewriteCond %{HTTP:Authorization} (.+)

RewriteRule ^(/seafdav.*)$ /seafdav.fcgi$1 [QSA,L,e=HTTP_AUTHORIZATION:%1]

RewriteRule ^(/seafdav.*)$ /seafdav.fcgi$1 [QSA,L]

#

# seahub

#

RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ /seahub.fcgi$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

~~~

### 关于客户端的注意事项

### Windows

在Windows平台,我们推荐使用webdav客户端软件例如Cyberduck或BitKinex.webdav对于Windows浏览器的支持实现并不是十分可用,因为:

~~~

Windows 浏览器需要利用HTTP数字认证。但是由于Seafile在服务器端不存储纯文本密码,所以它不支持这个特性。HTTP基本认证只被HTTPS支持(这是合理的)。但是浏览器不支持自我签署的证书。

~~~

结论就是如果你有一个合法的ssl证书,你应该能过通过Windows浏览器来访问seafdav。否则你应该使用客户端软件。Windows XP被声明不支持HTTPS webdav.

### Linux

在Linux平台你有更多的选择。你可以利用文件管理器例如Nautilus来连接webdav服务器,或者在命令行使用davfs2。

使用davfs2

~~~sudo apt-get install davfs2

sudo mount -t davfs -o uid= https://example.com/seafdav /media/seafdav/

~~~

-o选项设置挂载目录的拥有者为,使得非root用户拥有可写权限。

我们建议对于davfs2,禁用锁操作。你需要编辑/etc/davfs2/davfs2.conf

~~~ use_locks 0

~~~

### Mac OS X

Finder对于WebDAV的支持不稳定而且较慢. 所以我们建议使用webdav客户端软件如Cyberduck.

### 常见问题

### 客户端无法连接seafdav服务器

默认, seafdav是未被启用的。检查你是否在`seafdav.conf`中设置`enabled = true`。 如果没有,更改配置文件并重启seafle服务器。

### 客户端得到"Error: 404 Not Found"错误

如果你将SeafDAV部署在Nginx/Apache, 请确保像上面的配置文件一样更改`share_name`的值。重启Seafile服务器后重新测试。

webdav 文件服务器,WebDAV 扩展相关推荐

  1. 虚拟主机 webdav php,ubuntu 搭建 webdav 文件服务器 及客户端配置 详解

    1. 什么是 WebDAV? WebDAV stands for "Web-based Distributed Authoring and Versioning". It is a ...

  2. android webdav客户端,WebDAV精灵(WebDAV客户端)

    WebDAV精灵 让您的Phone,,Pad 成为WebDav客户端,能够使用从WebDav服务器下载文件和上载文件 . 一些常用的WebDAV站点: https://webdav.yandex.co ...

  3. linux同步webdav,基于 WebDAV 的 安卓 与 Linux 之间的写作同步

    并不是多新奇或是巧妙的做法,仅仅是利用纯纯写作的 WebDAV 同步特性和 WebDAV 在 Linux 下的可挂载性 这种方法刚好满足我个人的需求,特此写于此处,望能给予有类似需求的人一点帮助 0 ...

  4. android webdav客户端,WebDAV精灵

    WebDAV精灵 让您的Phone,,Pad 成为WebDav客户端,能够使用从WebDav服务器下载文件和上载文件 . 一些常用的WebDAV站点: https://webdav.yandex.co ...

  5. 高性能webdav服务器,webdav服务器

    webdav服务器 内容精选 换一换 TaiShan 200服务器基于华为鲲鹏处理器,提供了强大的计算和并发能力.在高并发的Web业务场合可以充分发挥鲲鹏处理器多核.内存带宽高的优势,提升用户的Web ...

  6. linux webdav 乱码,webDav遇到的乱码问题

    在用jspSmartUpload上传文件的过程当中,开始使用以下代码的时候出现乱码: WebdavResource pwr = GetWebdavResource.getWDR(wrPath); pw ...

  7. 向fedora虚拟机中复制文件_Unraid虚拟机中Dockers下搭建WebDAV共享文件服务器

    WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET.POST. ...

  8. webdav使用mysql_如何设置WebDAV与MySQL认证Apache2(Debian Etch)

    如何使用Apache2(Debian Etch)上的MySQL认证设置WebDAV 版本1.0 作者:Falko Timme 本指南介绍如何在Debian Etch服务器上的Apache2上使用MyS ...

  9. WebDAV 配置及相关工具

    最近在项目中安装和调试服务器,杯具的是,服务器是内网地址,而且不可以直接SSH.SFTP,只能通过中间一台linux作为跳板,然后在SSH命令行里去操作目标机器. 如果只是命令行操作也就无所谓了,但是 ...

最新文章

  1. 开源!mathAI手写拍照自动能解高数题,还不快试试?
  2. mysql 查询日志介绍
  3. Win2000中活动目录的备份与恢复
  4. mysql里b树_MySQL-B树/B+树
  5. 长这么大了,一件事也没做好过
  6. 骚年快答 | 技术中台与业务中台都是啥?
  7. JS获取自定义属性data-*值与dataset
  8. 深度 | 带领国产数据库走向世界,POLARDB底层逻辑是什么?
  9. Windows Server AppFabric Caching支持大数据量的配置
  10. 硬件基础知识---(15) 二极管单项导电特性
  11. mysql 表2符合表1,MySQL:表tbl_2_1_15已满
  12. DOM的利用冒泡做的一个小程序
  13. MYSQL 存储过程和函数 案例 例子
  14. 《暗黑3》是如何设计随机地下城的?
  15. Python画哆啦A梦
  16. 阿里云产品分析(1):阿里云安全性分析与案例
  17. android中的简单animation(三)accelerate(加速),decelerate(减速),anticipate,overshoot,bounce...
  18. GIT 中如何打标签(git tag)
  19. 域名解析的DNS缓存如何清理
  20. chatgpt智能问答微信小程序+后端源码+视频搭建教程

热门文章

  1. 长距离无线通讯LoRa应用介绍
  2. 在Multisim导入TI提供的SPICE模型
  3. [下载]免费网页密码破解软件─WebCracker 4.0 汉化注册版下载
  4. Matlab .asv是什么文件
  5. python输出为什么会有b_【已解决】为什么Python打印数据显示为b‘XXX’格式
  6. 【学习笔记】Linux 系统编程入门
  7. bls12 curve生成器,可生成ZCash sapling版本中所使用的BLS12-381曲线
  8. 利用WITH AS改写SQL
  9. linux挂载4T及以上硬盘
  10. 卷积神经网络与神经网络,卷积神经网络基础知识