论坛管理员 发表于 2020-8-12 09:45:36

使用Tomcat作为webdav服务器

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服务.

irisnet 发表于 2022-7-11 23:36:33

请教一下,还是其他文件服务器吗? 比如直接使用ftp服务器、或者minio集群什么的。
页: [1]
查看完整版本: 使用Tomcat作为webdav服务器