2026年9月30日 · 阅读约 4 分钟

Typora 图床:图片自动上传到 S3 或 Cloudflare R2

Typora 默认把粘贴的图片保存在 Markdown 文件旁边。平时这样没问题,可一旦发布文档、粘贴到 GitHub 或发给别人,图片就留在了你的电脑上。边写边把图片上传到你自己的存储桶,Markdown 就能随处使用,链接也指向你自己掌控的存储。

安装并连接 aktar 命令

Typora 的自定义上传服务会带着图片路径运行一条命令,并读取它输出的链接。aktar 做的正是这件事,它使用你在 Mac 或 Windows 版 Aktar 中已经设置好的上传目标。

brew install getaktar/tap/aktar-cli    # or: npm install -g @getaktar/cli
  1. 在 Aktar 中打开设置 → 集成,开启允许本地连接,然后复制令牌。
  2. 在终端中运行 aktar login 并粘贴令牌。
  3. 用 aktar upload some-image.png 检查一下,它应该会输出一个链接。

把 aktar 设为 Typora 的图片上传服务

  1. 打开 Typora 的设置(Mac 上为 Typora > 偏好设置…,Windows 上为文件 > 偏好设置…),进入图像。
  2. 在上传服务中选择自定义命令。
  3. 填入带完整路径的命令。在用 Homebrew 安装的 Mac 上是:
/opt/homebrew/bin/aktar upload

运行 which aktar(Windows 上为 where aktar)查看你的路径。Typora 不一定能读到终端里的 PATH,所以写完整路径比只写 aktar 更稳妥。

  1. 点击验证图片上传选项。Typora 会上传两张小的测试图片,并显示返回的链接。

粘贴图片时自动上传

在同一个图像设置中,把插入图片时…设为上传图片。此后,把图片粘贴或拖入文档时,它就会被上传,存储桶中的链接会写进 Markdown。

对于已经包含本地图片的文档,使用格式 > 图像 > 上传所有本地图片。

选择图片的存放位置

默认情况下,图片会上传到 Aktar 菜单栏中选中的上传目标,并按它的路径模板命名。如果想把 Typora 的图片放到别处,可以给命令加上参数:

/opt/homebrew/bin/aktar upload -d Blog              # a destination named "Blog"
/opt/homebrew/bin/aktar upload --folder docs/images # keep file names, in one folder

保持纯 URL 输出(默认)即可:Markdown 由 Typora 自己写入,所以这里不要加 --format 或 --json。

如果验证图片上传选项失败

  • 找不到命令,或找不到 node:使用 which aktar 输出的完整路径。Homebrew 版本自带 Node 的路径,所以在 Typora 中可以直接使用;如果是通过 npm 安装的,请写成 /path/to/node /path/to/aktar upload。
  • 未连接到 Aktar:在终端中运行 aktar login,并确认 Aktar 正在运行且已开启允许本地连接。
  • 打开链接显示 Access Denied:上传已经成功,但存储桶无法通过它的公开 URL 公开访问。参见 Access Denied 错误。

常见问题

支持 Cloudflare R2、Backblaze B2 和 MinIO 吗?

支持。aktar 会上传到 Aktar 中设置的任意上传目标,包括 Amazon S3、Cloudflare R2、Backblaze B2、DigitalOcean Spaces 和 MinIO。参见配置指南。

需要 PicGo 或插件吗?

不需要。Typora 内置的自定义命令选项会直接运行 aktar。

上传的图片可以自动过期吗?

可以,在命令中加上 --expires 30,存储桶会在 30 天后删除这些图片。不过对于要发布的文档中的图片,通常还是应该长期保留。