在上一篇博客中,我已經搭建好了chevereto圖牀。最初的目的就是在markdown中使用圖片。因爲之前使用七牛的圖牀失效了。
現在圖牀已經搭建好了,參照我的這篇博客,我們來利用chevereto的api以及MarkdownPicPicker工具來實現圖片的自動上傳。
Chevereto API
API的說明可以參考官方文檔,不過官方文檔有點簡單。這裏給出我的使用方式。
按照文檔中的說明,我們最好採用“POST”的形式來傳數據。默認的上傳url爲:
http://mysite.com/api/1/upload
通過這個地址上傳的圖片會標記爲Guest上傳的,如果想要傳到指定賬戶上,官方給出的回答是自己修改route.api.php
。很神奇,不過能解決了。如果用戶爲foo,那麼要這樣操作:
- 複製
route.api.php
爲route.fooapi.php
- 將其中函數
CHV\Image::uploadToWebsite($source);
改爲CHV\Image::uploadToWebsite($source,'foo');
即可 - 上傳url變爲:
http://mysite.com/fooapi/1/upload
下面是需要確定POST傳遞的數據,官網沒有給出說明,通過閱讀源碼,應該是下面的結構:
data = {
"key": "API key",
"source":url,
"action":"upload"
}
其中,source是圖片的網址,或者是本地圖片轉換爲base64之後的結果。對於python,可以使用這個函數轉換:
import base64
def tobase64(filename):
with open(filename, "rb") as image_file:
encoded_string = base64.b64encode(image_file.read())
return encoded_string
這樣,我們就可以通過POST提交圖片了。提交之後返回JSON格式的數據,其中url可以通過JSON的result_dict.get('image',{}).get('url','')
讀取出來。
MarkdownPicPicker
根據以上原理,在MarkdownPicPicker的基礎上增加了相應的uploader,地址.
已經提交給作者,等待作者生成相應的exe。
Pyinstaller
本來我是準備自己生成exe,可惜使用pyinstaller得到的exe都太大了。在虛擬環境下得到的也很大,希望知道的朋友給教一下。
bat文件
一個變通的方法是使用bat文件,這樣就可以配合AutoHotKey使用。這裏我的環境是,使用了Anaconda,需要使用activate
函數才能進入python環境,相應的bat文件爲:
@CALL activate
python MarkdownPicPicker.py
exit
小結
到這裏就可以使用chevereto圖牀進行markdown的寫作了。