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项目地址:Github

配置插件

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

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

修复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,如果对你有用,请留下一个star

108 条评论

发表评论

*

  • 请教站长:我的图片不能显示。配置都是成功的,在wp传一个图片后,本地和腾讯cos的相关文件夹里都有文件,但引用的时候看不见。地址链接能正确显示图片,在wp的媒体管理中也能显示出该图片,但显示为空白的。点到详情中也不能显示图片,但点编辑可以看到图片。请指教哪里出了问题

  • 源站域名可以,加速域名不行。请问源站域名和加速域名有什么区别?没有区别的话我就直接填写这个访问域名吧,就是长了点。。。弄了好几天都没弄好。。 🙁

  • 我设置为默认域名可以正常了。设置为自定义域名就不行。。。自定义域名选择自由源还是?COS源?

  • 发现服务器时间出问题(后台显示UTC时间的地方实际上是北京时间,造成发布的文章都是8小时前)。然后全部禁用插件再启用发现问题来自本插件,能否检查一下问题 😥

    • @Hanada 昂,这个问题github上有人提过,这个需要改一下插件中的配置。详细的可以查看https://github.com/sy-records/wordpress-qcloud-cos/issues/2#issuecomment-437644895

  • 能不能出个教程,为什么配置不成功,配置完成后所有图片不加载

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

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

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