wordpress 对接 oss 存储图片

ecs 带宽只有 1M,每次访问图片都要加载很久……loading……loading……

但是服务器带宽太贵,升级舍不得,换成按量付费又怕被刷(虽然也没几个人访问)。而使用价格相对便宜、有防刷措施的 oss 作为图床就很有性价比。

使用 oss 做图床的 wordpress 插件有好几个,我用的是 OSS Aliyun。因为看介绍可以方便地将已有图片同步到 oss。

RAM 子账号

插件是需要配置阿里云账号的,但使用主账号感觉不安全,所以需要先配置一个子账号。

进入到 RAM 访问控制页面,点击左侧用户,然后创建用户。访问方式我只勾选了“编程访问”。创建完成后记下 AccessKey 和 AccessKeySecret。

RAM子账号
创建 RAM 子账号

OSS Bucket 创建和配置

新建 Bucket 的地域选择和 ecs 一样的(上图是后来截的,所以与下面的 ecs 地区不一致),这样可以选择内网传输。读写权限选择“公共读”。创建好后,设置防盗链、跨域和 Bucket 授权策略。

  • 防盗链加入博客域名以及阿里云控制台域名——*.console.aliyun.com。
  • js 跨域部分也只加博客的域名,不建议使用通配符。
  • Bucket 授权策略添加之前创建的 RAM 子账号。权限为完全控制。

OSS Aliyun 插件设置

安装 OSS Aliyun 插件,启用,然后到配置页面。

oss aliyun 设置

图片处理我没有勾选,因为没弄懂。

保存完之后点击开始同步(ecs 没有图片的不需要点),成功的后页面上方会显示同步数量,oss 后台也可以看到同步之后的图片。

同步之后,打开博客文章,里面的图片链接基本都是 oss 的了。有部分链接还是 ecs 的,并且不是 https。这是很久之前没有启用 https 的遗留。对于遗留的问题链接,可以通过“数据库原链接替换”进行操作。旧域名就是 ecs 博客的旧域名,新域名就是 oss 里 bucket 的域名。

都操作完成之后,打开图片较多的博客文章,终于舒畅了。

问题

  1. oss 图片 403。这个问题的出现是因为防盗链设置错了。