WordPress基于腾讯云COS存储站点图片及跨域解决方法

昨天我把站点内的所有图片copy了一份到腾讯云的COS存储,腾讯云COS对象存储是腾讯云为企业和个人开发者们提供的一种能够存储海量数据的分布式存储服务,用户可随时通过互联网对您的大量数据进行批量存储和处理,也就是说,我们可以拿来当做WordPress的图床使用,并且使用 COS 标准存储的用户,每月还可享受一定的免费额度的。

免费额度

资源类型 资源子类型 每月免费额度
存储空间 存储空间 50 GB
流量 外网下行流量 10 GB
流量 腾讯云 CDN 回源流量 10 GB
请求 读请求 100 万次
请求 写请求 100 万次

这对于我们个人小站点来说应该是够用的,我是直接拿来存图片了,其他js,css等静态文件还没想好放不放。。。下面我们直接使用这个基于腾讯云存储COS的WordPress远程附件支持的插件,可以直接将站点题图等直接替换掉,但是文章内的图没办法更换,因为已经写入数据库了,可以手动更改一下。

基于腾讯云存储COS的WordPress远程附件插件

这个插件核心功能使用了腾讯云COS官方SDK,当然你不想用插件的话也可以自己集成一下

该插件实现以下功能:

使用腾讯云对象存储服务存储wordpress站点图片等多媒体文件

可配置是否保留本地备份和是否上传缩略图

支持配置图片等存储地址,并可支持腾讯云COS绑定的个性域名(需已备案)

支持一键同步资源到腾讯COS

安装

直接下载源码包。从Github上或者码云上直接下载打包源码,通过WordPress后台上传安装,或者直接将源码包上传到WordPress插件目录wp-content\plugins,然后在后台启用。

Github项目地址:传送门

码云项目地址:传送门

这个插件有点问题,项目是2015年上传的,作者后期好像没有维护了,这里更新了一下

百度网盘:传送门,Github项目地址:Github

配置插件

插件配置图一
插件配置图一
插件配置图二
插件配置图二

这些参数以及腾讯云存储桶如何创建就不说了,自己看一下官方文档吧。插件该注意的地方,插件设置的页面也都有说。

如果网站是HTTP的,需要把/wordpress-qcloud-cos-master/sdk/Qcloudcos目录下的conf.php文件中的https://region.file.myqcloud.com/files/v2/改为http://region.file.myqcloud.com/files/v2/

修复BUG

第一个:

之前也说了,文章内的图片插件不会自动替换,需要手动更改一下,我们直接打开数据库 spl 执行以下命令,看到影响了*行 说明执行成功

执行成功
执行成功

第二个:

当替换完了以后,查看控制台会报错,

跨域问题
跨域问题

提示跨域之类的错误No 'Access-Control-Allow-Origin' header is present on the requested resource.原因是没有添加header头之类的东西,解决方法:

在你的腾讯COS源的CDN中添加HTTP Header配置,

Access-Control-Allow-Origin:*

在你的存储桶的基础设置中设置跨域访问CORS,配置如下

跨域访问CORS设置
跨域访问CORS设置

就可以去除这个报错信息了。


有人用不了这个插件是因为函数命名的问题,别问了,自己去我Github上打包下载一份,项目地址:Github,如果对你有用,请留下一个star

79 条评论

发表评论

*

  • 腾讯云不启用CDN,只用COS,可以么?我同步后,显示同步数据成功,但是,没有上传到COS中,博文图片全部打不开。再次将插件内的目录留空。博文图片可以打开。插件内不填任何信息,仍然显示同步数据成功。是不是不匹配V5的COS,所以不能使用成功?

      • @沈唁 我启用的WPSUPERCACHE、WPJAM、COS插件,WPJAM中禁用XML-RPC,不知道和这个有没有关系,我用腾讯云主帐号建立的存储桶,云API的KEY,然后在WP后台填写好之后,点击的更新,然后点击的同步,但是,我用的是香港的COS节点,COS的地域选的是华南,这样是不是不行?

        • @complexray 插件冲突可能会有,没测试过。地区还是选一样的好。配置没问题开个回源试试吧

      • @沈唁 回源是要从哪里开呢?这个没有做过。
        我的服务器是在香港节点,我可以对象存储选内地吗?会不会有延迟,或者流量计费上不算成是内网什么的?

      • @沈唁 停用wpjam后,网站挂了,还有办法从后台开启插件吗? 🙁

  • 配置以后发现了一些问题,不上传缩略图和不在本地保留备份,想要生成缩略图的话必须不勾选不在本地保留备份;在数据库里删除图片并不会同步从cos里删除(虽然我希望的就是不同步删除……不过其他人可能需要同步);另外博主,勾选不在本地保留备份后本地图片文件会删除,但是数据库里依然有数据,我用的腾讯云临时域名测试的,数据库里的数据不显示图片内容,而是全部用那种文章标识替代了,这个是神马情况。

    • @宅 缩略图是wp切割的,可能要点一下同步。在数据库删除图片?我都是在wp后台的媒体删除。不保留本地肯定不会有,已经写入数据库的图片地址,本地的删了,找不到图片肯定404

      • @沈唁 😆 成功了,谢谢博主。。你教程写的不要填id啊 我还以为那个桶名和ID是一起的 😆 。。你是在国外吗?半夜起来?

        • @君柯 我写的桶名不要带id。。尴尬,等我有空重新编辑下吧。github给个star或者赞赏吧,一会早起赶飞机

  • 没可能是配置问题。。。我不是第一次填了。。给截图。。

  • 😥 你们都配置不成功吧,我配置了下,也不行。配置好SSL了,加了CDN 用老版本V4的插件可以,用这个V5的不行..这插件行吗博主。