首页 > 编程语言 >Github图床 Python Typora

Github图床 Python Typora

时间:2024-04-08 14:33:06浏览次数:26  
标签:Github Python base64 图床 file import path data Typora

1. 搭建Github 图床

1.1. 创建或者选择一个Public 仓库

image-20240406012606606

1.2. 获取Github Token

image-20240406012713266

image-20240406013111358

2. Typora 结合图床

当Typora需要使用这个图床的时候,Picgo 是很好的解决方案,但是还可以通过其他的方式来进行上传,比如python 脚本。

2.1. upload-img.py

import requests
import base64
import json
import uuid
import datetime
import os
import sys

ext = ""


# 从文件夹下 读取文件
def read_dir(file):
    global ext
    if not os.path.isdir(file):  # 判断是否是文件夹,不是文件夹才打开
        ext = os.path.splitext(file)[1] # 文件后缀
        with open(file, 'rb') as f:  # rb 二进制 读取
            fdata_tmp = file_base64(f.read())
            f.close()
            return fdata_tmp


# 将文件转换为base64编码,github上传文件必须将文件以base64格式上传
def file_base64(data):
    data_b64 = base64.b64encode(data).decode()
    return data_b64


# 上传文件
def upload_file(file_data):
    global ext
    file_name = str(uuid.uuid1()) + ext  # 文件名 随机生成
    # url = "https://api.github.com/repos/[user]/[repo]/contents/[path]/"+file_name  # 用户名、库名、路径
    # headers = {"Authorization": "Bearer " + token}

    # ghp_****
    # JaikenWong/Drawing-Bed
    # images
    # main
    token = "ghp_******"  ## github -> settings -> Developer Settings -> Personal access tokens -> Tokens(classic) -> Generate new token (classic)
    curr_time = datetime.datetime.now()
    path = curr_time.strftime("%Y-%m-%d") # 日期文件夹
    url = "https://api.github.com/repos/JaikenWong/Drawing-Bed/contents/images/" + path + "/" + file_name  # 用户名、库名、路径
    headers = {
        "Authorization": "Bearer " + token
    }
    content = file_data
    data = {"message": "zj upload pictures", "content": content}
    data = json.dumps(data)
    req = requests.put(url=url, data=data, headers=headers)
    req.encoding = "utf-8"
    re_data = json.loads(req.text)
    print("https://cdn.jsdelivr.net/gh/JaikenWong/Drawing-Bed@main/images/" + path +
          "/" + file_name)
    # 这个打印会回显给Typora cdn.jsdelivr.net 是免费的加速cdn

if __name__ == '__main__':
    args = sys.argv[1:]
    for img_path in args:
        # 从文件夹 读取文件
        fdata = read_dir(img_path)
        upload_file(fdata)

2.2. 效果展示

这里是一些相关打印都 打印出来的情况。上面代码不包含这些print

img

2.3. 配置在Typora

img

2.4. 命令配置

/Users/jaiken/miniconda3/bin/python  -u /Users/jaiken/workplace/pypro/learning/upload-img.py

2.5. 验证测试

img

标签:Github,Python,base64,图床,file,import,path,data,Typora
From: https://www.cnblogs.com/Jaiken/p/18121067

相关文章

  • python进阶之tkinter模块
    tkinter 是Python的标准图形用户界面(GUI)工具包,用于创建桌面应用程序的用户界面。tkinter 提供了一组丰富的组件和工具,使开发者能够轻松地构建具有按钮、标签、文本框、滚动条等元素的交互式应用程序。以下是 tkinter 模块的一些主要作用:创建窗口:tkinter 提供了创建窗口......
  • python计算机毕设【附源码】基于Android开发的智能音乐播放系统(django+mysql+论文)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着移动互联网的飞速发展,智能手机已经成为人们日常生活中不可或缺的一部分。在众多手机应用中,音乐播放系统是用户使用频率较高的应用之一。传统的音乐播放......
  • 文本转语音常用的几个python库
    在Python编程领域,文本到语音(Text-to-Speech,TTS)的转换是一个常见的需求,尤其是在开发能够与用户交互的应用程序时。以下是几个流行的Python库,它们可以帮助开发者实现文本到语音的转换,并且有的可以将转换后的语音保存为MP3文件。gTTS(GoogleText-to-Speech)gTTS是一个依......
  • 27岁自学Python转行靠谱吗?入行晚吗?
    今年已经奔三的小编来给大家说说,之前自己也是在一个普通的二本院校上学,学的还是工商管理,毕竟读书的时候电视剧里面的主角都是工商管理的大佬。不过在毕业之后就经历了社会的毒打,后面小编就想去换一个工作,学起了软件应用开发,然后这几年的数据分析很火又来试试,生命在于折腾......
  • 粉丝提问:26想转行做Python开发,是不是已经晚了?
    26岁基本上是一个硕士研究生刚毕业的年纪,相当于本科毕业工作了2年,总体来说时间耽误的并不算太多,想转行做Python开发,不算太晚!1转行前先想清楚这5点!①年龄:至少在35岁前还有9年时间,时间上面是可以的。②学历:有没有达到最低的学历要求?本科以下不好找。③风险:是否做好了......
  • 一起学习python——基础篇(7)
    今天讲一下python的函数。函数是什么?函数是一段独立的代码块,这块代码是为了实现一些功能,而这个代码块只有在被调用时才能运行。在Python中,使用 def关键字定义函数:函数的固定结构就是def(关键字)+函数名字(自己定义)+():deftest_function():#里面的内容一定要有空格(......
  • Python适用的工作,看看哪个适合你?
    学编程?Python?很多人可能一头雾水,觉得只有程序员才需要会编程,还把Python脑补得很难。其实不是的,Python在资源收集、数据分析、自动化办公等领域表现很突出,可以帮我们执行一些重复、低效的工作,让我们把更多时间花在刀刃上。并且,Python也不是程序员的专属,它将是每个职场人的......
  • Python 高级编程必会之深浅拷贝
    浅拷贝和深拷贝在Python中各有用武之地,正确的选择取决于具体的应用场景、数据结构的复杂性以及对性能的要求。理解这两种方法的工作原理和差异,是每个Python开发者在进行数据复制操作时必须掌握的基础。 在我们进行Python编程的时候,复制(拷贝)数据结构是一种常见的操作,比如当......
  • 图床1.0
    ......
  • 【头歌-Python】流程控制自学引导
    禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/137461301参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301如果代码存在问题,麻烦大家指正~~有帮助麻烦点个赞~~数值类型自学引导第1关:按从小到大顺序输出小于n的非负整数第2关......