吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3686|回复: 15
收起左侧

[其他原创] typora+华为云oss存储做图床

[复制链接]
美柚明治 发表于 2022-1-19 20:47
背景:PicGo | PicGo
Snipaste_2022-01-19_20-14-31.png


pic这个项目,并没有对华为云的对象存储服务,我昨天在看论坛的时候,一个哥们的typora 配合 csdn 这个想法给了我提示,通个宵把华为云的搞出来了。

代码如下:
[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-

import sys
import yaml
import pyperclip as pc
from obs import ObsClient
import tkinter as tk
from PIL import Image, ImageTk  # 导入PIL模块中的Image、ImageTk
import tkinter.messagebox

con_path = sys.argv[1]
pic_path = sys.argv[2]
pic_name = sys.argv[2].split("\\")[-1]


# 读取文件
def readfile(filepath):
    f = open(filepath, encoding="utf-8")
    yaml_reader = yaml.load(f.read(), Loader=yaml.FullLoader)
    f.close()
    return yaml_reader


# 上传文件到 oss
def upload(name):
    obsClient = ObsClient(
        access_key_id=config['access_key_id'],
        secret_access_key=config['secret_access_key'],
        server=config['server']
    )
    content = open(pic_path, 'rb')
    resp = obsClient.putContent(config['bucketname'], name, content=content)
    # pc.copy('![](' + resp.body['objectUrl'] + ')')
    pc.copy('![](' + resp.body['objectUrl'] + ')')
    print(resp.body['objectUrl'])
    return resp['status']


# 提交
def but():
    name = label2.get("1.0", tk.END + "-1c")
    if len(name) == 0:
        tk.messagebox.showinfo('提示', '请输入路径')
    else:
        if tk.messagebox.askquestion('提示', '上传后的文件名为 ' + name + ' ') == "yes":
            if upload(name=name) < 300:
                tk.messagebox.showinfo('提示', '上传成功,链接已经放到了粘贴板')
                sys.exit(1)
            else:
                tk.messagebox.showinfo('提示', '上传失败,请重新操作上传')


config = readfile(con_path)
# 创建根窗口
root = tk.Tk()
# 设置根窗口标题
root.title("华为oss工具-海绵")
# 设置窗口大小
winWidth = 600
winHeight = 600
# 获取屏幕分辨率
screenWidth = root.winfo_screenwidth()
screenHeight = root.winfo_screenheight()

x = int((screenWidth - winWidth) / 2)
y = int((screenHeight - winHeight) / 2)

# 设置主窗口标题
root.title("华为oss工具-海绵")
# 设置窗口初始位置在屏幕居中
root.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))
# 设置窗口图标
# root.iconbitmap("./image/icon.ico")
# 设置窗口宽高固定
root.resizable(0, 0)

image = Image.open(pic_path)  # 创建Label组件,通过Image=photo设置要展示的图片
image = image.resize((int(screenWidth / 4), int(screenHeight / 4)))
photo = ImageTk.PhotoImage(image)  # 创建tkinter兼容的图片
label = tk.Label(root, image=photo)  # 创建Label组件对象
label1 = tk.Label(root, text='\n\n读取到以上图片,图片的文件名字为  ' + pic_name + '  ,请重命名\n\n')  # 创建Label组件对象
label2 = tk.Text(root, height=1, width=30)
label3 = tk.Message(root, text='\n\n')  # 创建Label组件对象
label4 = tk.Button(root, text='确定上传', command=but)
label.pack()  # 展示Label对象
label1.pack()  # 展示Label对象
label2.pack()
label3.pack()
label4.pack()

root.mainloop()  # 保持窗口展示



当然,我把这个代码直接打包成了 exe 可运行的程序,都在链接里面了。注意:这个脚本执行的时候 ,需要一个配置文件。

Snipaste_2022-01-19_20-23-04.png



如何使用


Snipaste_2022-01-19_20-25-25.png


右键图片上传就会唤起这个程序,为什么要加一个重命名的操作呢? 其实 一个是为了重命名,一个为了放到不同的文件夹里面去。。。。如果你的命名是    test/pic.jpg    。在上传的时候就会新建 test 文件夹 , 然后在把图片放到这个文件夹下面。

重点内容:上传成功的时候,程序会关闭,但是 typora 会报错,不用管。这个是 typora 的问题,但是图片是上传到了的。上传成功之后会返回一个链接 ,程序已经帮你把这个链接放到你的剪贴板,直接ctrl + v 粘贴 就可以了。这时候 typora 就可以显示图片了。。
直接ctrl + v 粘贴 就可以了。这时候 typora 就可以显示图片了。。
直接ctrl + v 粘贴 就可以了。这时候 typora 就可以显示图片了。。



如何使用

在 typora 里面设置。 这里一定要使用 绝对路径 。

Snipaste_2022-01-19_20-39-41.png




链接
链接: https://pan.baidu.com/s/1PBWYRrrCKQc4bzYNCGZx8Q?pwd=ck6c 提取码: ck6c 复制这段内容后打开百度网盘手机App,操作更方便哦

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
BIGOcean + 1 + 1 找机会试试

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 美柚明治 发表于 2022-1-20 12:26
开创者 发表于 2022-1-20 10:43
这个能通用吗?支持其它cms吗?

目前支持华为云 , 如果你是阿里腾讯的,推荐用 picgo ,因为picgo没有华为云,我就做了这个。当然你可以改改代码。支持阿里的应该不难
 楼主| 美柚明治 发表于 2022-1-25 21:50
i80980 发表于 2022-1-19 23:35
推荐哪个平台做图床?

码云免费,具体啥情况不清楚,阿里,腾讯都有这种oss存储,不过要钱,个人使用流量消耗其实不算大
i80980 发表于 2022-1-19 23:35
BIGOcean 发表于 2022-1-20 01:48
i80980 发表于 2022-1-19 23:35
推荐哪个平台做图床?

码云不错
i80980 发表于 2022-1-20 10:02

码云超过1M不显示,后来才发现原来要登陆才显示
开创者 发表于 2022-1-20 10:43
这个能通用吗?支持其它cms吗?
影子是时光的心. 发表于 2022-1-20 10:57
在用gitee作图床 觉得也挺好的
BIGOcean 发表于 2022-1-20 11:16
i80980 发表于 2022-1-20 10:02
码云超过1M不显示,后来才发现原来要登陆才显示

我擦 这倒是个新发现
 楼主| 美柚明治 发表于 2022-1-20 12:26
影子是时光的心. 发表于 2022-1-20 10:57
在用gitee作图床 觉得也挺好的

确实也可以,还免费
cyzz001 发表于 2022-1-22 11:21
用github作图床
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 08:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表