chevereto图床的使用及与markdown关联

在上一篇博客中,我已经搭建好了chevereto图床。最初的目的就是在markdown中使用图片。因为之前使用七牛的图床失效了。

现在图床已经搭建好了,参照我的这篇博客,我们来利用chevereto的api以及MarkdownPicPicker工具来实现图片的自动上传。

Chevereto API

API的说明可以参考官方文档,不过官方文档有点简单。这里给出我的使用方式。

按照文档中的说明,我们最好采用“POST”的形式来传数据。默认的上传url为:
http://mysite.com/api/1/upload

通过这个地址上传的图片会标记为Guest上传的,如果想要传到指定账户上,官方给出的回答是自己修改route.api.php。很神奇,不过能解决了。如果用户为foo,那么要这样操作:

  • 复制route.api.phproute.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','') 读取出来。

提交时需要secret_key,可以在chevereto网站的设置-API页面看到

MarkdownPicPicker

根据以上原理,在MarkdownPicPicker的基础上增加了相应的uploader,地址.
已经提交给作者,等待作者生成相应的exe。

Pyinstaller

本来我是准备自己生成exe,可惜使用pyinstaller得到的exe都太大了。在虚拟环境下得到的也很大,希望知道的朋友给教一下。

bat文件

一个变通的方法是使用bat文件,这样就可以配合AutoHotKey使用。这里我的环境是,使用了Anaconda,需要使用activate 函数才能进入python环境,相应的bat文件为:

@CALL activate
python MarkdownPicPicker.py
exit

小结

到这里就可以使用chevereto图床进行markdown的写作了。


版权声明:本文为zhao_cq原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。