将Z-BlogPHP网站的附件(图片)迁移到腾讯云对象存储

分类:zblog教程浏览量:961发布于:2年前

现在很多网站喜欢将附件(图片)上传到第三方云存储了,这样做不仅可以节省服务器磁盘空间和带宽压力,还可以提升网站的整体打开速度。下面我就以腾讯云对象存储为例,为大家介绍

首先需要注册腾讯云账号以及实名认证:https://cloud.tencent.com/

第二步创建存储桶
在存储桶列表页面,点击创建存储桶。
所属地域:根据网站用户分布情况选择,如果用户在国外就选国外(国外的比较贵)
存储桶名称:随便起,只要符合规则就行
访问权限:要选公有读私有写
剩下的默认就行
腾讯云创建存储桶截图

 

在zb后台下载一款云存储插件。我这里给推荐两款:
可乐云存储(腾讯云版):https://app.zblogcn.com/?id=25658
腾讯云对象存储插件:https://app.zblogcn.com/?id=17851

这里我就以可乐云存储为例,给大家介绍

下载并启用插件之后,进入插件配置页面
可乐云存储配置截图1

上传目录:一般不需要修改,但是有的人不喜欢默认的系统目录,就可以在这里修改
云存储URL:在腾讯云对象存储控制台->存储桶列表-><对应存储桶>->概览->域名信息里的链接复制过来就可以
直接上传:就是在附件上传的时候,将附件上传到cos(需要配置账号)
不保留备份:如果附件成功上传到cos,则不在本地保留备份
上传时替换URL:这个要着重说明一下。不勾选的情况下,会在用户访问文章时动态替换文章里的本地图片链接成云存储链接。而勾选后,会在发布文章时替换文章里的链接(这样可以兼容一些插件。但是在上传完之前的图片后,在数据库里替换一下链接)

然后就是上传设置:这里提供两种上传模式
一种是直接上传:在后台上传附件(图片)的时候,同步将其上传到对象存储。只需要勾选直接上传就可以实现(需要配置账号)

另一种是不勾选直接上传,当访问时直接镜像回源就可以了(注意:这样不支持自定义上传目录)

设置镜像回源

在腾讯云对象存储控制台->存储桶列表-><对应存储桶>->基础设置->回源设置里点击添加回源规则
腾讯云对象存储添加回源规则对话框

文件名前缀:固定填 zb_users/upload/ (也可以默认)
回源协议:如果你的网站不支持https,就选择强制http
其它默认就好,然后点下一步

腾讯云对象存储添加回源规则对话框2

回源地址:直接填网站域名即可。其它默认就可以了

上传图片到腾讯云对象存储

配置完前面这些,基本就可以使用了

但是在使用插件之前的图片还没有被上传上去。如果图片不多的话,可以直接使用插件的一键上传功能(但是会很慢)

如果图片很多的话,可以用腾讯云提供的cli工具上传

首先用putty登录服务器shell(其它工具也可以)

安装coscli

wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux -O coscli
chmod +x coscli

配置账号和存储桶信息。将以下代码保存到 ~/.cos.yaml(内容要替换成你自己的)

cos:
  base:
    secretid: 你的SecrectID
    secretkey: 你的SecretKey
    sessiontoken: ""
    protocol: https
  buckets:
  - name: 存储桶名称-AppID:在腾讯云对象存储控制台->存储桶列表-><对应存储桶>->概览->基本信息->存储桶名称
    alias: 随便写一会有用
    region: 地域对照表:https://cloud.tencent.com/document/product/436/6224
    endpoint: ""

然后执行

./coscli sync <网站目录>/zb_users/upload cos://<alias>/<上传目录>

网站目录:直接填写网站在服务器的目录
上传目录:就是配置时设置的上传目录
alias:刚刚配置文件里的alias:后面的值

替换数据库链接

如果前面勾选了上传时替换URL,需要在数据库里替换文章的图片链接。

在数据库里运行一下命令

UPDATE `zbp_post` SET `log_Content`=REPLACE(`log_Content`, '{&#35;ZC_BLOG_HOST&#35;}zb_users/upload', '<云存储URL>/<上传目录>') WHERE `log_Content` LIKE '%{&#35;ZC_BLOG_HOST&#35;}zb_users/upload%'

云存储URL与上传目录之间须有/作为分隔

如果需要将采集的图片定时上传到对象存储,请阅读:https://www.kelbk.com/article/26.html

文章下方广告位
下一篇:使用Nginx的FastCGI Cache缓存给ZBlogPHP网站提速 

我来回答

猜你喜欢

最近更新

关注我们

qrcode

扫码进入插件售后群

控制面板
您好,欢迎到访网站!
  查看权限
最近发表
标签列表