使用阿里云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作为ECS本地盘,解决Confluence wiki附件上传大文件存储问题

使用阿里云OSS作为ECS本地盘,解决Confluence wiki附件上传大文件存储问题

  第二步: 通过软链接文件目录的方式映射到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服务搞定。