使用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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2020-05-09 U盘弹出文件或目录损坏且无法读取实测解决教程
2019-05-09 axios拦截器配合element ui实现http请求的全局加载