Typora自定义Gitee图床上传脚本

新建Gitee仓库

  • 仓库必须是开源(所有人可见)
  • 选择初始化
Typora自定义Gitee图床上传脚本

Upload Images (typora.io)

获取Gitee OpenAPI的access_token

在设置-安全设置-私人令牌-生成新令牌,令牌需要有projects权限,生成后保存好给到的access_token。

Typora自定义Gitee图床上传脚本

Python3环境与脚本配置变量的修改

import requests
import sys
import time
import random
import os
import base64
import json

# git commit的信息
message="图床"
# 刚刚获取到的私人令牌
access_token="XXXXXXXXX"
# gitee的用户名
owner="Tung7" 
# 刚刚新建的仓库名
repo="pic-repo"
# 提交文件目标目录
dir="img"



base_url="https://gitee.com/api/v5/repos/"
filename=sys.argv[1]
filepath=sys.argv[2]
imgs=sys.argv[3:]
tmp="""{"access_token":"%s","content":"%s","message":"%s"}"""

arr=[]
hasF=False
for img in imgs:
    file_ext = os.path.splitext(img)[-1]
    newName="%s/%s_%s_%s" % (filename, filename,time.strftime("%Y%m%d%H%M%S", time.localtime()),random.randint(100000, 999999))
    url=base_url+owner+"/"+repo+"/contents/"+dir+"/"+newName+file_ext
        
    with open(img, ‘rb‘) as f:
        encode_img = base64.b64encode(f.read())
        img_base64 = encode_img.decode()
        #print(‘data:image/{};base64,{}‘.format(file_ext[1:], img_base64))
        headers={"Content-Type":"application/json;charset=UTF-8"}
        data=tmp%(access_token, img_base64, message)
        f.close()
        try:
            res=requests.post(url=url, headers=headers, data=data.encode(‘utf-8‘))
            res.encoding = "utf-8"
            resBody=json.loads(res.text)
            arr.append(resBody[‘content‘][‘download_url‘])
        except Exception as e:
            print(e)
            hasF=True

if (hasF):
    print("Upload Failed:")
else:
    print("Upload Success:")
    for a in arr:
        print(a)

Typora配置

  • 取消勾选本地位置的图片规则
    • 这样就不会自动上传图片,等到文章编辑好之后,再手动右键图片进行上传。
  • 勾选网络位置的图片规则
    • 会自动将网络位置的图片上传到图床
  • 上传服务填写Custom Command
  • 命令填写python脚本,并附带``${filename}${filepath}`参数
    • /usr/local/bin/python3 /Users/Tung/hexoblog/pyupload.py ${filename} ${filepath}
    • 环境中可能有多种python环境,手动指定install了依赖包的那个环境即可
Typora自定义Gitee图床上传脚本

参考文档

Upload Images (typora.io)

Typora自定义Gitee图床上传脚本

上一篇:JS导出EXCEL,动态设置单元格格式,合并单元格(横向或纵向)等操作


下一篇:Apache多域名多站点配置