基于博客园搭建Typora免费图床

本地需要有python3环境,复制以下代码到一个.py的文件中,如我本地命名为 upd_pic_to_cnblog.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import os
import sys
import xmlrpc.client as client
import mimetypes

CONFIGS = {
"url": "",
"username": "",
"password": "",
"blogID": "",
}

def get_image(image_path):
image_mimetype = mimetypes.guess_type(image_path, True)[0]
image_name = os.path.basename(image_path)
image_bits = client.Binary(open(image_path, 'rb').read())
image = {
"name": image_name,
"type": image_mimetype,
"bits": image_bits,
}
return image


def upload_image(image_path):
image = get_image(image_path)
server = client.ServerProxy(CONFIGS.get("url"))
url = server.metaWeblog.newMediaObject(CONFIGS.get("blogID"), CONFIGS.get("username"),
CONFIGS.get("password"), image).get("url")
return url


def main(argv):
args = iter(argv)
next(args)
for image_path in args:
print(upload_image(image_path))

if __name__ == "__main__":
main(sys.argv)

将代码中 CONFIGS 参数修改为自己博客园后台相关参数

1
2
3
4
5
6
CONFIGS = {
"url": "",
"username": "",
"password": "",
"blogID": "",
}

用户id可以通过自己的博客园地址查看image-20230410162011459

账号信息可以在其他设置中查看,需要允许 MetaWeblog 博客客户端访问

image-20230410162416702

修改后如下所示

image-20230410162856170

打开Typora 文件 =》 偏好设置 =》图像 设置界面,按照下图所示进行配置

image-20230410163245197

注意修改命令中的python文件所在目录位置

1
python D:\Files\Typora\upd_pic_to_cnblog.py

设置好后点击验证图片上传选项进行验证服务是否正常

image-20230410163949320

需要注意的是,博客园图片有防盗链,在其他网站引用图片可能无法加载

image-20230411223535238

相关参考

使用博客园做MarkDown图床

相关推荐

基于CSDN搭建Typora免费图床

PicGo搭建免费图床实现Typora图片自动上传

图片防盗链导致图片无法加载解决方法

Typora 图片自动上传至腾讯云Cos 服务