简介:

把腾讯云cos挂载到Linux服务器(LNMP环境)上discuz附件目录下,像使用服务器本地文件系统一样直接操作腾讯云对象存储,然后用腾讯云COSBrowser工具把图片传到cos,实现无缝接入腾讯云对象存储。

背景:

我有一个坚持了10年的地方论坛,用的是org域名,因为上半年工信部政策变动,不再支持org域名备案,备案随后被强制注销。虽然这BBS人气不咋样,但毕竟曾有过辉煌,累计的附件在25G左右。
去年图双11便宜,把数据搬迁到京东云,结果尽是坑。用了大半年没到期又搬回了阿里云,回到阿里云不久,又赶上备案注销,无奈之下,只好将数据迁往香港。
这来来回回的折腾,备份数据传输最让人蛋疼,20多万个图片小文件,1-2M的小水管,每次都要耗时1周左右才能传完,用scp传输中间要有出错完蛋了重新来,用rsync嘛怪我学艺不精,总是报错,空间没了文件不知道传那了,汗颜。
所以就有了把图片存到cos,搬家只迁移discuz程序和数据库的想法。对比了几家的云存储,发现腾讯云的工具完善,文档丰富,主要是便宜(免费额度大)。
(待续)

第1步 搭建环境

linux版本随意,我用的是centos5.7,环境是军哥lnmp一键安装包,用了多年,相当不错。搭建也很简单,详见官方安装文档

第2步 安装腾讯云cosfs工具

挂载之前需要安装官方的cosfs工具及其依赖,腾讯云文档写的很详尽,就不赘述。文档地址
务必严格按照文档安装依赖。

第3步 创建并挂载腾讯云cos存储桶

登录腾讯云后台,到对象云存储那里创建个存储桶,目前成都和重庆地区比较便宜。
官方文档提及的工具和依赖都安装好后就可以开始挂载了,因为挂载的用户是root,discuz是www,所以我加了-oallow_other参数,允许其他用户读写。
需要注意的是,-ourl参数的存储桶地址不要用https,我安装时卡在这里,后来检查好几遍才发现

cosfs xxx-1123456789 /home/wwwroot/xxxwebfile/data/attachment -ourl=http://cos.ap-chengdu.myqcloud.com -odbglevel=info -oallow_other -onoxattr

挂载完成后,使用df -h 命令查看,如不报错并有这样的提示即为成功:
cosfs 256T 0 256T 0% /home/wwwroot/xxxwebfile/data/attachment

[root@MyServer ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_have-lv_root
                      8.3G  2.9G  5.0G  37% /
tmpfs                 497M     0  497M   0% /dev/shm
/dev/xvda1            477M   33M  420M   8% /boot
/dev/xvdb1             30G  6.8G   22G  24% /home
cosfs                 256T     0  256T   0% /home/wwwroot/xxxwebfile/data/attachment

这样,你在bbs前台发帖,上传的图片附件就直接存储到cos上了。

第4步 将图片附件传到cos

先用ftp工具filezila(能断点续传,有进度条,推荐)把附件从原服务器下载到本地,本地电脑安装COSBrowser,用从腾讯云后台获取的SecretId和SecretKey登录,上传速度非常快,我20多G图片一两小时上传完。
需要注意的是存储桶中的目录应该与discuz目录data/attachment下文件夹一致,你网站原来的图片才能正常显示。
腾讯云cos目录

第5步 cos自定义域名及cdn设置

因为我并没有使用腾讯云CVM,如果通过自己的服务器访问cos,再返回给访问用户,外网下行流量费用将非常感人(0.5元/G)。而cdn流量和cdn回源流量都是0.15元/G合计才0.3/G,所以cos必须要和cdn搭配使用,可降低费用。
首先用另外一个已备案域名设置二级域名img.xxx.com为加速域名,并解析。
腾讯云cos自定义域名设置

第6步 discuz后台设置

设置如下:
discuz后台设置
如果你用的是腾讯云的服务器,这一步可不设置,全部默认即可,然后就可以去前台登录测试是否能正常发帖。

最后编辑:2018年10月18日 ©著作权归作者所有

发表评论