本文是一份超詳細的 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": {}
}