技术文章
o2server对于附件(二进制文件)并不是存放在数据库中,而是单独进行二进制文件存储,存储在独立的文件存储服务器中.
在默认情况下服务器在启动时候会启动一个ftp服务器作为文件存储服务器.应用的附件,图片等文件资源实际是通过ftp协议存放在ftp服务器中的,默认ftp服务器实际存储路径
o2server/local/repository/storage
可以通过配置来实现将文件存储在外部存储服务器中.o2server服务器实际是通过 apache vfs 来实现对不同存储系统的支持.
目前支持以下存储系统:
ftp : FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.
ftps : FTPS是一种对常用的文件传输协议(FTP)添加传输层安全(TLS)和安全套接层(SSL)加密协议支持的扩展协议.
sftp : SSH文件传输协议.
cifs : 开放的SMB协议版本.
webdav : 基于 HTTP 1.1协议的通信协议.
ali : aliyun OSS 文件存储.
file : 本地文件系统.
可以通过 扩展存储服务 进行配置.
下面我们以ftp为例来说明具体配置.
点击 添加存储节点
ftp存储节点说明:
节点标识 node1, 任意,用于区别不同节点.
名称 node1, 必须唯一,多个节点中通过此名称来区别文件存放位置.
协议 ftp, 协议类型.
主机 192.168.1.2, 主机地址.
端口 21, 服务器端口.
用户名 admin, ftp登录用户名.
密码 123456, ftp登录密码.
这里我们添加两个ftp存储节点,用于后面的配置演示.
o2server对不同应用的文件进行了类型的区分,目前定义的类型有:
processPlatform : 流程平台文件.
mind : 脑图文件.
meeting : 会议管理文件.
calendar : 日程安排文件.
cms : 内容管理文件.
file : 网盘文件.
bbs : 论坛文件.
strategyDeploy : 工作管理文件.
structure : 应用管理.
im : 聊聊文件.
general : 其他通用文件.
custom : 自定义应用文件.
这些不同类型的文件可以存放到同一个存储上,也可以存放在不同类型的存储上,我们将所有类型都配置存储到node1节点上.
存储节点 : 选择节点.
前缀路径 : 以ftp为例,所有类型都存储在node1上,通过设置前缀路径进行区分,不同类型存储在不同目录中.
使用深路径 : 使用多级目录减少在同一个目录下的文件,一个目录下有大量文件可能导致操作系统问题.
是否启用 : 启用开关.
针对同一个类型的文件比如processPlatform(流程平台文件),也可以配置多个存储,文件将随机存储在这几个存储中,这里配置processPlatform类型添加两个node1,node2存储节点.
配置完成后需要重启服务器以生效!
实际生产环境中处于安全的考虑需要集成商密系统对文件进行加密存储,对于这样的场景,o2server支持对文件进行存储前后的拦截事件,可以对拦截事件进行开发实现对文件二进制流进行改写.
执行控制台备份命令(ctl -dd)可以对数据库数据进行导出备份,默认情况关联的附件也会被一并导出,可以通过导出配置是否进行关联文件存储导出.同样配置执行恢复(ctl -rd)时是否重新写入所有文件到文件存储.
后续计划支持HDFS(hadoop)和华为云存储(OSS).
o2server不包含对附件文件的版本控制,如果需要实现对文件的版本控制可以通过webdav协议对接jackrabbit实现.