使用阿里云OSS作为ECS本地盘,解决Confluence wiki附件上传大文件存储问题
一、背景:
公司内部使用的wiki需要支持上传大文件操作, 但是原本wiki(Confluence 6.8.2)本身闭源,无法修改源码,附件存储地址无法被修改,且不支持对接数据库或者OSS, 于是想办法在尽可能节约资源的情况下,解决大文件上传问题。
二、解决思路:
使用OSS bucket 挂载到本地文件系统中, 通过软链接文件目录的方式映射到OSS的本地盘, 这样附件保存会自动上传至OSS当中。
附wiki附件设置提示信息:
附件存储:
/var/atlassian/confluence/attachments
帮助提示
在这里指定Confluence附件的保存位置。
文件系统:
此选项(默认)在本地文件系统中保存全部附件。
数据库 (已废弃):
此选项在数据库中保存全部附件。当出现编码问题或为了方便备份时可以选择使用。
请注意:
更改附件保存方式需要做数据迁移。
三、注意事项:
1、更改之前一定要先做好附件备份,将附件转移到OSS当中,最好要先停一下服务。
2、由于wiki是用docker安装的, 也可以通过修改docker启动命令来实现。
3、wiki真实附件目录可能有点不太一样, 这个就需要自己查找一下啦。
四、操作:
第零步:
0、假设你已经有了ECS及在OSS上已经添加了新的bucket。
第一步: 将阿里云OSS制作本地盘操作
1、操作步骤选择1: 使用cloudfs, 不过有一个问题是只支持CentOS6.5 / Ubuntu 14.04
具体怎么操作我就不搬别人文章了, 请戳教你如何简单将OSS bucket挂载成为阿里云ECS服务器本地盘
2、操作步骤选择2: 使用ossfs, 这个好用,比较推荐, 请戳阿里云ECS挂载OSS 或者 快速安装ossfs
在安装使用过程中,万一遇到一些指令问题,欢迎交流。
操作成功可以自己测试一下,能不能同步到OSS
第二步: 通过软链接文件目录的方式映射到OSS的本地盘:
1、先用docker命令停一下confluence服务。
2、移动/var/atlassian/confluence/attachments(你的wiki附件目录)到/oss/wikiattachments(OSS文件)下
指令: mv /var/atlassian/confluence/attachments /oss/wikiattachments
3、创建软链接 ln -s /oss/wikiattachments /var/atlassian/confluence/attachments
这样在/var/atlassian/confluence/attachments变成了类似快捷方式的东西,真正存储的是在/oss/wikiattachments中
4、存储到OSS之后,文件权限可能会有变动,会导致无法上传附件及浏览以前旧文件, 记得更改文件夹下所有文件权限。
5、重启docker服务搞定。