查看: 4758|回复: 1

使用Tomcat作为webdav服务器

升级   100%

138

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36566
发表于 2020-8-12 09:45:36 | 显示全部楼层 |阅读模式
O2OA服务器支持使用webdav协议来存储二进制文件.
Tomcat默认是支持WebDAV的,且默认为禁用状态.
可以开启Tomcat的webdav作为文件存储服务器.
开启步骤如下:
1.在tomcat的webapp是目录下创建一个webdav目录作为项目.
2.在webdav目录下创建WEB-INF/web.xml
web.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"    id="WebApp_ID" version="3.0">    <display-name>webdav</display-name>    <welcome-file-list>        <welcome-file>index.html</welcome-file>        <welcome-file>index.htm</welcome-file>        <welcome-file>index.jsp</welcome-file>        <welcome-file>default.html</welcome-file>        <welcome-file>default.htm</welcome-file>        <welcome-file>default.jsp</welcome-file>    </welcome-file-list>    <servlet>        <servlet-name>webdav</servlet-name>        <servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class>        <init-param>            <param-name>debug</param-name>            <param-value>0</param-value>        </init-param>        <init-param>            <param-name>listings</param-name>            <param-value>true</param-value>        </init-param>        <!-- Read-Write Access Settings -->        <init-param>            <param-name>readonly</param-name>            <param-value>false</param-value>        </init-param>    </servlet>    <!-- URL Mapping -->    <servlet-mapping>        <servlet-name>webdav</servlet-name>        <url-pattern>/*</url-pattern>    </servlet-mapping>    <security-constraint>        <web-resource-collection>            <web-resource-name>webdav</web-resource-name>            <!-- Detect WebDAV Methods in URL For Whole Application -->            <url-pattern>/*</url-pattern>            <http-method>PROPFIND</http-method>            <http-method>PROPPATCH</http-method>            <http-method>COPY</http-method>            <http-method>MOVE</http-method>            <http-method>LOCK</http-method>            <http-method>UNLOCK</http-method>        </web-resource-collection>        <!-- Restrict access by role -->        <auth-constraint>            <role-name>*</role-name>        </auth-constraint>    </security-constraint>    <login-config>        <auth-method>BASIC</auth-method>        <realm-name>webdav</realm-name>    </login-config>    <security-role>        <description>WebDAV User</description>        <role-name>webdav</role-name>    </security-role></web-app>


3.在tomcat/conf目录下的tomcat-users.xml文件中添加webdav访问用户
4.启动Tomcat
<?xml version="1.0" encoding="UTF-8"?><tomcat-users xmlns="http://tomcat.apache.org/xml"              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"              version="1.0">  <role rolename="webdav"/>  <user username="admin" password="admin" roles="webdav"/></tomcat-users>


5.在o2server/configSample目录下拷贝externalStorageSources.json到o2server/config目录
修改配置指向webdav
{  "file": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/file/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "processPlatform": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/processPlatform/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "mind": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/mind/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "meeting": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/meeting/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "calendar": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/calendar/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "okr": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/okr/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "cms": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/cms/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "bbs": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/bbs/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "report": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/report/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "strategyDeploy": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/strategyDeploy/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "teamwork": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/teamwork/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ],  "structure": [    {      "protocol": "webdav",      "username": "admin",      "password": "admin",      "host": "127.0.0.1",      "port": 8080.0,      "prefix": "/repository/default/structure/",      "enable": true,      "weight": 100.0,      "name": "251",      "deepPath": false,      "###protocol": "协议,可选值ftp,webdav###",      "###username": "登录用户名.###",      "###password": "登录密码.###",      "###host": "主机地址.###",      "###port": "端口.###",      "###prefix": "前缀路径.###",      "###enable": "是否启用###",      "###weight": "设置权重.###",      "###name": "存储节点名,对应存储名称,谨慎修改.###",      "###deepPath": "是否使用更深的路径.###"    }  ]}


6.在o2server/config目录下将node_xxx.xxx.xxx.xxx.json中的storage服务器设置为禁用.
  "storage": {    "enable": false,    "port": 20040.0,    "sslEnable": false,    "name": "251",    "accounts": [],    "prefix": "",    "deepPath": false,    "###enable": "是否启用,对于二进制流文件,比如附件,图片等存储在单独的文件服务器中,可以支持多种文件服务器,默认情况下使用ftp服务器作为文件服务器,每个节点可以启动一个文件服务器以提供高性能.###",    "###port": "ftp服务器端口,此端口可以不对外开放,仅有ApplicationServer进行访问,并不直接对用户提供服务.###",    "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",    "###name": "名称,多个节点中不能重名,默认为251.###",    "###accounts": "二进制流文件是分多个账号分段存储的,可以单独设置每个分类的存储配置,一般不需要设置.###",    "###passivePorts": "ftp传输有主动和被动之分,如果使用了被动传输,设置被动端口范围,默认为29000-30000.###",    "###prefix": "路径前缀.###",    "###deepPath": "使用更深的路径###"  }


7.启动服务器o2server服务已经将存储转向tomcat服务器所提供的webdav服务.
[url=https://www.yuque.com/attachments/yuque/0/2020/xml/751286/1594695355026-e9bc20df-8b40-46f2-a317-d9c9b96c5ad3.xml]
回复

使用道具 举报

升级   21.4%

40

主题

135

帖子

607

积分

高级会员

Rank: 4

积分
607
发表于 2022-7-11 23:36:33 | 显示全部楼层
请教一下,还是其他文件服务器吗? 比如直接使用ftp服务器、或者minio集群什么的。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread