Typora編寫markdown插入圖片時自動上傳圖片到博客園
1.登錄博客園後獲取cookie值
Cookie的key爲.Cnblogs.AspNetCore.Cookies
,僅此一個就足夠了
2.上腳本代碼
# upload_image2cnblogs.py
import requests
import sys
from pathlib import Path
argv = sys.argv
if len(argv) <= 1:
sys.exit(0)
img_path = Path(sys.argv[1])
if img_path.is_dir():
sys.exit(0)
if not img_path.exists():
sys.exit(0)
headers = {
'x-mime-type': f'image/{img_path.suffix[1:]}',
}
cookies = {
'.Cnblogs.AspNetCore.Cookies': '你自己的Cookie值',
}
upload_url = f"http://upload.cnblogs.com/imageuploader/processupload?host=www.cnblogs.com&qqfile={img_path.name}"
img = {"qqfile": (img_path.name, img_path.open('rb'), f'image/{img_path.suffix[1:]}')}
res = requests.post(upload_url, files=img, cookies=cookies, headers=headers)
if res.status_code == 200:
data = res.json()
success = data['success']
message = data['message']
if success:
print('Upload Success:')
print(message)
3.設置Typora
-
上傳服務選擇Custom Command
-
命令爲
python(或其他虛擬環境python解釋器路徑) py腳本絕對路徑
,Typora會自動往腳本里傳參圖片的絕對路徑,參數的長度和參數的個數都是不確定的 -
圖片上傳完成後,Typora 需要你按指定格式在控制檯輸出圖片的 URL 給它
Upload Success: https://stormbuf.coding.net/p/piccoding/d/piccoding/git/raw/master/typora-icon2.png
第一行一定要是
Upload Success:
,然後第二個非空行開始,一行一個圖片 URL -
插入圖片時:這個選項可以選擇上傳圖片或者選擇無特殊操作
- 選擇上傳圖片時當你選擇插入本地圖片時會自動把圖片上傳到博客園並返回上傳後的圖片地址
- 選擇無特殊操作時,當你選擇插入本地圖片時會自動提示你進行其他操作,比如上傳圖片等
4.總結
當前腳本是上傳圖片到博客園做圖牀,目前只適用於當前博客園的上傳圖片接口,腳本是否過期,自行判斷。此腳本只是做了個引子,讀者照葫蘆畫瓢也可以上傳其它OSS或者圖牀等。