1. 程式人生 > 其它 >使用Python指令碼通過typora上傳圖片到github打造免費私人圖床

使用Python指令碼通過typora上傳圖片到github打造免費私人圖床

gitee上傳檔案api

https://gitee.com/api/v5/swagger#/postV5ReposOwnerRepoContentsPath

github上傳檔案api

https://developer.github.com/v3/repos/contents/#create-or-update-file-contents

這個網址講了怎麼申請token和使用這個api。

結合typora可以非常方便的利用GitHub搭建一個私人圖床。

之前有很多教程是講的怎麼上傳到七牛雲阿里雲等,但是還是不如這個方便而且也非常穩定。

所有xxx的地方都需要替換成你的

import argparse
import
base64 import random import string import sys import requests import json from urllib.parse import unquote url = 'https://api.github.com/repos/xxx_username_xxx/xxx_倉庫名——xxx/contents/img/blog/' headers = {'content-type': 'application/json', 'Authorization': 'Bearer xxx_your_token_xxx'} data = { "message": ""
, "committer": { "name": "xxx", "email": "xxx" }, "content": "" } image_name = '' if len(sys.argv) == 1: sys.argv.append('--help') parser = argparse.ArgumentParser() parser.add_argument('-s', '--source', type=str, nargs='+', help="必須傳入檔名引數", required=True) args = parser.parse_args() image_list = args.source
def get_data(img): with open(img, "rb") as f: file = f.read() encode_f = base64.b64encode(file) data['content'] = str(encode_f, encoding="utf-8") data['message'] = image_name return data if __name__ == '__main__': for img in image_list: image_name = img.split("/")[-1] if len(image_name) > 50: image_name = ''.join(random.sample(string.ascii_letters + string.digits, 20)) \ + '.' + image_name.split(".")[-1] data = get_data(img) req = requests.put(url=url + image_name, data=json.dumps(data), headers=headers) print(unquote(req.json()['content']['download_url'], 'utf-8'))


[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-TS1OnLZB-1593240882443)(https://dongzhonghua.github.io/img/blog/image-20200627144920370.png)]

自定義命令填入 python3 xxx/upload.py -s

-s後面typora會幫你自動填入本地圖片路徑,使用時直接拖拽圖片到typora就自動上傳了。
————————————————
版權宣告:本文為CSDN博主「檸檬好酸啊」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/it_zhonghua/article/details/106982770