本文是一份超详细的 Typora + 七牛云图床配置指南,旨在帮助你实现图片“即插即用”的顺滑写作体验。我们将一步步完成所有配置,并特别针对配置过程中最常见的三个错误:ENOTFOUND
(找不到服务器)、401
(无权访问) 和 Document not found
(文件不存在) 提供精准的解决方案。
最终效果
当你将本地图片拖入或粘贴到 Typora 中时,它会自动上传到你的七牛云存储空间,并替换为网络链接,彻底告别手动上传和管理图片的繁琐。
第一步:准备工作
在开始之前,请确保你已具备以下条件:
- Typora 软件:建议使用最新版本,确保图床功能完善。
- 七牛云账户:完成注册和实名认证。实名认证后才能享受每月10G的免费存储空间和后续的域名绑定功能。
- 一个已备案的域名(可选,但强烈推荐):七牛云提供的测试域名只有30天有效期,过期后图片链接会失效。使用自己的域名可以永久稳定地使用。
第二步:配置七牛云(打好地基)
这是整个流程中最关键的一步,90%的错误都发生在这里。请务必仔细操作。
1. 新建存储空间 (Bucket)
登录七牛云后,在左侧菜单选择 “对象存储 Kodo”,然后进入 “空间管理”,点击 “新建空间”。
填写信息时,请特别注意以下三项:
- 存储空间名称 (Bucket):自定义,但必须全局唯一(不能和别人的重名)。例如
my-typora-images
。 - 存储区域 (Region):选择一个离你近的区域,如“华东-z0”、“华北-z1”、“华南-z2”。关键:请务必记住你选择区域后面的编号,例如
z1
。- 📌 错误解析点 1 (
getaddrinfo ENOTFOUND
): 这个错误意味着 PicGo 无法通过域名找到服务器。根本原因就是这里的存储区域编号在后续配置文件中填写错误。例如,你选择了“华北”,但在配置中却填了s3
或其他不存在的编号,导致 PicGo 访问了一个错误的服务器地址。正确做法是记住这里的z0
,z1
,z2
等官方编号。
- 📌 错误解析点 1 (
- 访问控制:必须选择“公开”。
- 📌 错误解析点 2 (
401 Authorization Required
): 这个错误表示“需要授权”,即你没有权限访问该文件。根本原因就是 Bucket 被设置为了“私有”。私有空间的文件需要带签名的临时链接才能访问,不适合做公开图床。正确做法是必须设置为“公开空间”。
- 📌 错误解析点 2 (
2. 获取关键参数
空间创建成功后,我们需要获取5个关键参数用于配置 Typora。
- AccessKey (AK) 和 SecretKey (SK):
- 点击右上角个人头像,进入 “密钥管理”。
- 复制你的
AccessKey
和SecretKey
。这是你的账户凭证,请妥善保管,不要泄露。
- 空间名称 (Bucket):
- 就是你上一步创建的存储空间名字,例如
my-typora-images
。
- 就是你上一步创建的存储空间名字,例如
- 存储区域编号 (Area):
- 就是上一步让你记住的区域编号,例如
z1
。
- 就是上一步让你记住的区域编号,例如
- 访问域名 (URL):
- 进入你创建的空间的 “概览” 页。
- 在右侧找到七牛云分配的 “测试域名”,复制它。它通常是
q...
开头的地址。 - 📌 错误解析点 3 (
Document not found
): 这个错误表示服务器虽然收到了请求,但在你提供的链接下找不到文件。这通常是因为你在 PicGo 中配置的“访问网址”不正确。我们先使用这个“测试域名”来确保上传流程通畅,后续再换成自己的域名。
至此,你应该已经准备好了5个信息:AccessKey
, SecretKey
, 空间名称
, 存储区域编号
, 测试域名
。
第三步:配置 Typora
- 打开 Typora,点击菜单栏 “文件” -> “偏好设置” -> “图像”。
- 在 “上传服务设定” 中,选择
PicGo-Core (command line)
。 - 如果提示未安装,点击 “下载或更新”,等待 Typora 自动完成。
- 下载完成后,点击 “打开配置文件”。
Typora 会自动打开一个名为 config.json
的文件。将以下模板内容完整地复制进去,替换掉原有内容:
{"picBed": {"uploader": "qiniu","qiniu": {"accessKey": "这里粘贴你的AccessKey","secretKey": "这里粘贴你的SecretKey","bucket": "这里填写你的空间名称","url": "http://这里粘贴你的测试域名","area": "这里填写你的存储区域编号","options": "","path": "img/"}},"picgoPlugins": {}
}