无需插件,使用阿里云 OSS 托管 Typecho 图片

注册阿里云并开通 OSS

在阿里云后台新建 Bucket 并配置

  1. 进入OSS 控制台,https://oss.console.aliyun.com/overview
  2. 从 Bucket 列表进入刚刚创建的 Bucket
  3. 选择左侧菜单中的 “概览”,可以看到你 Bucket 的地址

    • 例如本站为:paoti.oss-cn-beijing.aliyuncs.com
  4. 找到右侧下方的 “基础设置” 模块,配置下面的三个项目

oss基础设置.png

配置防盗链和读写权限

  • 防盗链根据需求和页面指引自行配置
  • 读写权限配置为:公共读

配置镜像回源

  • 创建一条规则,例如本站的配置如下

OSS 镜像配置.png

  • 这条规则的意思是,当访问 paoti.oss-cn-beijing.aliyuncs.com/images.png 时,如果 OSS 中没有该文件,会自动到 paoti.club/image.png 获取该文件

修改 Typecho 主题文件

在 Typecho 主题文件夹的 functions.php 内增加如下的函数

  • 如果没有 functions.php 可以自行创建
function img_url_replace($content) {
  $old = 'paoti.oss-cn-beijing.aliyuncs.com/usr/uploads/';
  $new = 'paoti.oss-cn-beijing.aliyuncs.com/usr/uploads/';
  $content = str_replace($old,$new,$content);
  echo $content;
  return;
}

在主题的其他文件中,任何输出文章内容的地方,将

<?php $this->content; ?> 

替换为

<?php img_url_replace($this->content); ?>