Typora + PicGo + 阿里云 OSS:一套自己的图床方案

Typora 写作时常见的图片加载问题

平时我在用 Typora 写文章或者写笔记的时候,经常会遇到一个小麻烦,就是本地图片在网上加载不出来。

比如我在 Typora 里写得好好的,一张张截图、流程图都插进去了,但等我把文章发布到博客、掘金或者知乎的时候,那些图片就全变成空白,看不到了。

后来仔细想了下,其实原因很简单。

Typora 默认插入的图片都是保存在本地路径里的,也就是说,这些图片只存在我的电脑上。文章上传到网上以后,别人当然就访问不到这些本地文件。

要解决这个问题,其实也不复杂。

我们可以搭建一个图床,让 Typora 在插入图片时自动上传到云端,然后生成一条可以访问的公网地址。

这样一来,无论文章发到哪里,图片都能正常显示,不用再担心丢图的问题。


常见的几种图床方案

要让 Typora 自动上传图片到云端,其实选择很多。

目前主流的图床服务大概可以分成两类:

一类是国内的云服务,比如阿里云、腾讯云、七牛云;

另一类是一些第三方或开源平台,比如 SM.MS、GitHub、Imgur、又拍云这些。

如果只是偶尔写文章、想快速用上图床,SM.MS 这种免费的公共图床就够用,注册个账号就能用。

不过公共图床有个问题------稳定性和图片保留时间没法保证,有时图片过段时间就会失效。

如果是自己经常写文章、做笔记,或者想长期保存这些图片,那就更推荐用云服务类的图床,比如阿里云 OSS 或腾讯云 COS。

它们稳定、安全,还能自己绑定域名,看起来更正规一些。

GitHub 和 Imgur 也能做图床,但访问速度会慢一些,尤其是在国内网络环境下。

所以大部分人写技术文章或者博客时,最后还是会选择阿里云 OSS、腾讯云 COS 或七牛云这样的方案。


使用阿里云 OSS 来做图床

常见的图床其实有很多,但我自己这边主要还是用阿里云 OSS。 一方面是因为它稳定,国内访问速度也快;

另一方面是配置方式比较清晰,适合和 Typora、PicGo 结合使用。

所以今天我们主要就来讲讲,怎么用 Typora + PicGo + 阿里云 OSS 搭建一套属于自己的图床。

这套方案的好处是:

写文章时直接在 Typora 里粘贴截图,PicGo 会自动上传到 OSS,

然后 Typora 自动替换成图片的网络地址,整个过程不用手动操作。


第一步:设置 Typora 的图片上传方式

第一步我们先来设置 Typora,让它在粘贴图片的时候自动上传。

打开 Typora 后,点左上角菜单栏的「偏好设置」,

在左侧找到「图像」这一栏。

这里有一个选项叫「插入图片时」,默认是"无特殊操作"。

我们把它改成「上传图片」。

这样以后,只要我们在 Typora 里粘贴截图或者插入本地图片,

Typora 就会自动调用上传工具,把图片传到我们设置好的图床上。

然后往下看,有一项「上传服务设置」,

这里的「上传服务」我们选择 PicGo.app

这个选项就是告诉 Typora,让它使用 PicGo 这个工具来负责上传图片。

最后,点一下右边的「下载 PicGo.app」按钮,

Typora 会自动帮我们打开 PicGo 的下载页面。

接下来我们继续来讲一下怎么安装和配置 PicGo。


第二步:下载并安装 PicGo

前面我们在 Typora 里设置上传服务的时候,点了"下载 PicGo.app",

它会自动跳转到官网地址:molunerfinn.com/PicGo/

这个工具其实就是我们图片上传的"中间层",

Typora 自己不负责上传,而是通过 PicGo 把图片传到云端图床上去。

打开官网后,就能看到 PicGo 的介绍页面,

点击"免费下载"按钮,会跳转到 GitHub 仓库。

在 GitHub 页面里能看到很多版本号,比如 2.3.1 稳定版2.4.0-beta.10 测试版

如果我们只是日常使用,推荐下载 2.3.1 这个稳定版,功能已经够用;

想体验更新的功能,也可以尝试 2.4.0 的 beta 版本。

下载完成后,直接安装打开,就能看到 PicGo 的主界面了。

左边是功能栏,默认停留在「上传区」,

中间是一个大方框,提示我们可以拖拽图片或点击上传。

接着我们点击左侧的「图床设置」,

可以看到 PicGo 支持非常多的图床服务,比如:

腾讯云 COS、阿里云 OSS、SM.MS、GitHub、七牛云、Imgur 等。

因为我们这次是要用阿里云 OSS,

所以在左侧点选"阿里云 OSS",

右边就会出现一个配置界面。

这里可以看到几个必填项:

  • 配置名
  • AccessKeyId
  • AccessKeySecret
  • Bucket 名称
  • 存储区域(Region)

还有一些可选项,比如存储路径、自定义域名等。

所以接下来我们就要去阿里云控制台获取这些配置信息,

包括 AccessKey、Bucket 名称、区域等。


第三步:在阿里云创建 OSS 存储桶(Bucket)

PicGo 要上传图片到阿里云,就得先有个存储空间,也就是我们常说的 Bucket(桶)

下面我们就一步一步来创建。

首先,打开阿里云的 OSS 控制台地址:
oss.console.aliyun.com/bucket

进入页面后,会看到一个「Bucket 列表」的界面。

如果我们还没有创建过,会显示为空(这里我创建过了)。

我们点击蓝色的「创建 Bucket」按钮,就会弹出一个创建窗口。

在这里需要填几个基础信息:

  • Bucket 名称 :可以随便取个名字,比如 typora-images-kaka
  • 地域:选择离自己近一点的,比如华东2(上海)或者华北2(北京)。
  • 存储类型:默认选择"标准存储"就行。
  • 存储冗余类型:保持"同城冗余存储(推荐)"。

其他选项比如版本控制、阻止公共访问,可以先不用改。

填好之后点击最下方的「完成创建」,这样我们的 Bucket 就建好了。

接着进入刚才创建好的 Bucket,左侧会有一个"权限管理"菜单。

在这里我们要重点改两个地方:

  1. 关闭「阻止公共访问」
    默认是打开的,意思是外部用户无法访问我们上传的图片。
    但我们做图床就是为了让文章里能访问到图片,所以要关掉它。
  2. 修改「读写权限」为公共读
    在权限管理里,把读写权限从"私有"改为"公共读"。
    这样别人就可以访问图片的链接,但不能修改或删除内容。

这两步改完之后,点击保存。

如果我们自己有备案过的域名,还可以在「域名管理」里把域名绑定到这个 Bucket。

这样图片地址就能用我们自己的域名访问,比如我这里绑定的是 typora.luokakale.com,已经验证生效。

绑定之后访问链接会更好看,也更方便后续统一管理。

到这里,阿里云 OSS 的存储空间部分就配置完成了。

接下来我们要去创建 AccessKeyIdAccessKeySecret

这两个就是 PicGo 上传图片时用的"身份凭证"。


第四步:创建 AccessKey

接下来我们要做的是生成一对 AccessKeyIdAccessKeySecret

PicGo 在上传图片时就靠这两个值来验证身份。

首先,点击阿里云右上角的头像,

在下拉菜单中找到 "权限与安全" 一栏,点进去后选择 AccessKey

这时候系统会弹出一个提示框,上面写着:

"不建议使用云账号 AccessKey,因为它拥有账号的完全权限。"

其实这段提示很重要。

因为主账号的 AccessKey 相当于是我们整个阿里云账号的"万能钥匙",

一旦泄露,别人就能操作我们的所有资源。

而我们这里只是让 PicGo 把图片传到 OSS,并不需要访问其他服务,

所以更安全的做法是 创建一个 RAM 子用户

只授予它"上传 OSS 图片"相关的最小权限。

我们勾选 "使用 RAM 用户 AccessKey" 这一项,

系统会跳转到 RAM 控制台。

进入 RAM 控制台后,左侧菜单选中「用户」,

点击上方的 "创建用户"

在创建页面里,输入一个用户名,比如我这里是 typora

然后往下勾选 "使用永久 AccessKey 访问"

这样系统就会为这个子用户生成一对 AccessKeyId 和 AccessKeySecret。

这里要特别注意:

系统只会在这个创建完成的页面显示一次 AccessKey 信息。
一定要当场复制保存好!

一旦页面关闭,就再也无法重新查看,只能重新生成新的。

保存好 AccessKeyId 和 AccessKeySecret 后,点击确定,这个子用户就创建好了。

接下来我们还要给这个子用户分配「访问 OSS」的权限,

这样它才能正常上传图片。

点击确定后,这个子用户就创建好了。

创建好 RAM 用户并保存了 AccessKey 之后,我们还需要给这个用户分配访问 OSS 的权限。

否则它虽然有 Key,但没有权限上传图片。

接下来我们在 RAM 控制台左侧菜单中找到 「权限策略」

点击右上角的 「创建权限策略」 按钮。

在创建方式中选择 「脚本编辑」

然后在编辑框中粘贴下面这段 JSON:

json 复制代码
{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:PutObject",
        "oss:GetObject",
        "oss:ListObjects"
      ],
      "Resource": [
        "acs:oss:*:*:typora-images-kaka/*"
      ]
    }
  ]
}

这里面每一部分的意思其实都很简单:

  • "Effect": "Allow" 表示允许执行下面的操作;

  • "Action" 是允许的具体操作,这里包含:

    • oss:PutObject:允许上传文件;
    • oss:GetObject:允许读取文件;
    • oss:ListObjects:允许列出文件列表;
  • "Resource" 表示作用的资源范围。

    这里的 "typora-images-kaka" 就是我们之前在 OSS 创建的那个 Bucket 名称

    如果我们用的名字不一样,记得改成自己的。

这段策略的意思就是:

允许当前 RAM 用户对我们这个图床桶中的文件执行上传、读取、列出这三种操作。

它的权限范围刚好够 PicGo 上传图片使用,也不会影响其他资源。

粘贴好之后,点击 确定 ,然后给这个策略取个名字,比如 PicGoUploadPolicy

创建完成后,这个策略就出现在列表里了。

接下来,我们要把刚刚创建好的策略绑定给那个 typora 用户,让它真正具备上传权限。

在 RAM 控制台左侧菜单中点击 「授权」

然后点右上角的 「新增授权」

系统会弹出一个窗口,上半部分是 授权主体 ,下半部分是 权限策略

我们在上方的授权主体里,勾选刚才创建的 typora 用户。

接着往下,在搜索框里输入我们刚创建的策略名,比如 PicGoUploadPolicy

找到之后把它勾上。

现在右侧就能看到:上面是 "RAM 用户 typora",

下面是 "自定义策略 PicGoUploadPolicy"。

确认无误后,点击右下角的 "确认新增授权"

这样一来,这个 RAM 用户就正式具备了向我们指定的 OSS 桶(typora-images-kaka)上传图片的权限。

同时,由于它只拥有上传、读取、列出这三项操作,

所以安全性也比直接使用主账号的 AccessKey 高得多。

不过光有策略还不够,我们还需要在 OSS 桶里明确授权,让这个 RAM 用户真正能访问这个 Bucket。

打开 OSS 控制台,进入刚才创建的桶,在左侧菜单中找到 「权限管理 → Bucket 授权策略」,点击「新增授权」。

在弹出的窗口中:

  • 授权资源保持默认的 整个 Bucket
  • 授权用户选择刚才创建的 RAM 用户(比如 typora);
  • 授权操作选择 读/写(这样 PicGo 才能上传图片);
  • 其他选项保持默认即可(建议勾选"访问方式:HTTPS")。

然后点击确定保存。

到这里,这个 RAM 用户就真正具备了对指定 OSS 桶的访问权限,

既能上传图片,也能读取文件列表。

后续 PicGo 或 Typora 上传时就不会再出现 "AccessDenied" 的错误了。


第五节:在 PicGo 中配置阿里云 OSS

前面我们已经创建好了 Bucket、配置好了域名,也给 RAM 用户分配了上传权限。

接下来就可以在 PicGo 里把这些信息填进去,让图片能自动上传到 OSS。

打开 PicGo ,在左侧菜单中找到 「图床设置 → 阿里云OSS」

右侧会出现一整页表单,依次填写下面这些内容:

  • 图床配置名 :可以自己取个名字,比如我这里写的是 Typora
  • 设置 KeyId / KeySecret:填入刚才 RAM 用户生成的 AccessKeyId 和 AccessKeySecret。
  • 设置 Bucket :就是我们在阿里云里创建的 OSS 桶名称,比如 typora-images-kaka
  • 设置存储区域 :对应我们创建 Bucket 时选的区域,比如上海是 oss-cn-shanghai
  • 设置存储路径 :可选项,比如填写 typora/,上传的图片就会放在这个目录下。
  • 设置自定义域名 :如果我们绑定了自己的域名(比如 https://img.xxx.com),这里就写完整域名;没有的话可以留空。

全部填写好以后,点击 保存

返回 PicGo 的图床配置界面,就能看到我们新建的 Typora 图床配置。

点击 「设为默认图床」,这样以后 Typora 上传图片时,就会默认走这个配置。

在开始上传测试之前,我们还可以顺便调整一下 PicGo 的一些常用设置。

打开左侧菜单里的 「PicGo 设置」,这里主要有几项比较实用的选项。

  • 开机自启:如果我们经常用 PicGo 上传图片,可以把它打开,省得每次手动启动。
  • 上传前重命名:让我们在上传前先手动改一下文件名;
  • 时间戳重命名 :上传时会自动用时间戳命名文件,避免重名冲突(比如 20251104111814643.png);
    如果我们希望保留原来的文件名,可以关掉这个选项;
    想保持统一命名格式,也可以让它一直开着。
  • 上传后自动复制 URL:推荐开启,这样每次上传完成后链接会自动复制到剪贴板,非常方便。
  • 使用内置剪贴板上传:开启后可以直接复制截图,然后在 PicGo 或 Typora 里一粘贴就上传。
  • 输出(复制)URL 时进行转义:一般保持开启就行,用来避免特殊字符导致的访问错误。
  • 显示 Dock 栏图标:看个人习惯,开关都行。

确认这些选项设置好后,就可以进入最后一步了。

最后我们来测试一下。

打开左侧的 上传区 ,把一张图片拖进去,或者点"上传"按钮手动选择。

如果一切正常,PicGo 会自动把图片上传到 OSS,

接着我们打开 OSS 浏览器 (OSS Browser 工具),

可以看到在我们指定的 Bucket(typora-images-kaka)下,

已经自动生成了刚才在 PicGo 中设置的目录 ------ typora/

点进去以后,就能看到刚刚上传的图片文件。

这说明整个上传链路已经完全打通,

从 PicGo → 阿里云 OSS 的图床上传功能已经顺利跑通。


第六节:通过 Typora 测试自动上传功能

前面我们已经在 PicGo 中验证过上传没问题,

接下来就来看看------当我们在 Typora 里插入图片时,是否能自动上传到 OSS。

打开 Typora,随便新建一个 Markdown 文件。

然后我们试着直接复制一张图片到编辑区。

这时我们就能发现,图片会立刻显示在文档中,

而 Typora 自动帮我们生成了一条带有公网地址的图片链接,

链接前缀正是我们在 PicGo 中配置的自定义域名。

打开 OSS 浏览器(OSS Browser 工具)再看一眼,

可以看到这张图片已经同步上传到了对应的文件夹里,

文件名正是根据时间戳自动生成的。

到这里,整个自动上传链路就真正打通了:
从 Typora → PicGo → 阿里云 OSS,全流程实现图片自动上传与云端托管。

以后我们在写 Markdown 文章时,只需要像平时一样复制粘贴图片,

PicGo 会在后台自动上传,Typora 则自动插入图床链接,

整个过程几乎无感,但大大提高了写作效率。


碎碎念

其实如果平时只是随便写点文字还好,

但一旦文章里要配图,就会开始麻烦起来。

每次写完都得把图片先存到本地,再一张张上传到掘金、知乎这些平台,

还得担心以后图片丢了、链接挂了,文章看着就全是空白。

后来我干脆自己搭了个图床,用云端来保存这些图片。

这样不管写哪篇文章、在哪个平台发布,

都能直接用同一套云端链接,既省心又统一。

至于阿里云 OSS 的费用,感觉也不用太担心------

一般图床这种使用场景,访问量不高、文件也不大,

一个月几毛到几块钱的存储费就够用了,

如果是个人写作、博客用途,几乎可以忽略不计。

而且图片放在自己的 OSS 里,访问稳定、权限可控,

也不用担心哪天外链失效或者隐私泄露的问题。

整体来说,这套方案配置一次就能长期使用,

对我这种经常写 Markdown 的人来说,

还是挺不错的哈。

相关推荐
逛逛GitHub2 小时前
本周 6 个最火火火火 GitHub 项目,AI 杀疯了。
github
Lisonseekpan3 小时前
Git 命令大全:从基础到高级操作
java·git·后端·github·团队开发
CozyOct15 小时前
⚡️2025-11-08GitHub日榜Top5|AI黑客代理安全测试工具
github
CozyOct113 小时前
⚡️2025-11-07GitHub日榜Top5|AI舆情分析系统
github
草梅友仁17 小时前
草梅 Auth 1.11.0 发布与 GitHub 依赖安全更新 | 2025 年第 45 周草梅周报
开源·github·ai编程
lkbhua莱克瓦2418 小时前
Java基础——集合进阶用到的数据结构知识点1
java·数据结构·笔记·github
lkbhua莱克瓦241 天前
Java基础——常用算法3
java·数据结构·笔记·算法·github·排序算法·学习方法
吃饺子不吃馅1 天前
前端画布类型编辑器项目,历史记录技术方案调研
前端·架构·github
省四收割者1 天前
GitHub Action工作流语法
笔记·github