我开源了我的图床软件

西魏陶渊明 ... 2022-8-22 Java 大约 5 分钟

# 前言

今天下班前,小编看到隔壁老李,竟然买了一个图床工具。我当场大呵! 小李呀,你咋不找我啊。我有多款免费的图床工具, 全部不要钱。

小李当场吐血去世!

都2222年了,不会有人不知道什么是图床吧。

# 什么是图床?

图床其实就是放图片的空间,我们在网络上浏览的图片,其实都存放在网络的服务器上的,比如qq空间,csdn等等网站。

那么既然上面这些网站都已经给我们提供了图床,我们为啥还要自己搭建图床呢? 不知道大家有没有发现,我们在qq空间或者是csdn上传的图片。如果要在其他网站上去引用。这些平台会自动给你加了一个水印。

还有更气人的,它直接给你403,然后给你显示一个其他的图片。

所以说对于那些个人博客网站,千万不能使用外链的图片,否则可能那天就不能在访问了。前车之鉴,后车请自动饶坑。

# 申请免费空间 + 自定义水印

前面我们说了图床是什么,其实就是找个能放图片的网络空间。那么有没有免费的空间呢? 当然有了。某🐂 云对个人用户提供10g的免费空间。你写博客用不了10g吧。另外还支持cdn加速,还能自定义水印。

以免被认为小编是在说广告,这里就不说是哪个厂子了。如果有人知道的,可以留下评论。如果不知道的点击关注,我们细细再聊。

下面教大家如何正确使用图床,然后做一个懒人。

# 懒人1.0版本

基于python写的一个脚本。先演示。这个脚本的好处是,任何文件都能上传。不管是图片还是文件,都可以上传的个人空间。坏处是每次要上传文件都要进到命令控制台。

以下脚本送上,拿走不谢。这个脚本我用了1年。后来我又变懒了。于是懒人2.0版本要出来了。

from prettytable import PrettyTable
import argparse
import hashlib
import time
import uuid
from colorama import init, Fore, Back


class Color:
    @staticmethod
    def red(s, isLight=False):
        if not isLight:
            return Fore.RED + s + Fore.RESET
        return Fore.LIGHTRED_EX + s + Fore.RESET

    @staticmethod
    def green(s, isLight=False):
        if not isLight:
            return Fore.GREEN + s + Fore.RESET
        return Fore.LIGHTGREEN_EX + s + Fore.RESET

    @staticmethod
    def yellow(s, isLight=False):
        if not isLight:
            return Fore.YELLOW + s + Fore.RESET
        return Fore.LIGHTYELLOW_EX + s + Fore.RESET

    @staticmethod
    def white(s, isLight=False):
        if not isLight:
            return Fore.WHITE + s + Fore.RESET
        return Fore.LIGHTWHITE_EX + s + Fore.RESET

    @staticmethod
    def blue(s, isLight=False):
        if not isLight:
            return Fore.BLUE + s + Fore.RESET
        return Fore.LIGHTBLUE_EX + s + Fore.RESET

    @staticmethod
    def black(s, isLight=False):
        if not isLight:
            return Fore.BLACK + s + Fore.RESET
        return Fore.LIGHTBLACK_EX + s + Fore.RESET


def fileByLocation(fileLocation):
    '''从完整的路径名计算出文件名'''
    if fileLocation.count('/') > 0:
        return fileLocation.split('/')[-1]
    else:
        return fileLocation


def fileNameEncode(fileName, prefix):
    '''文件名加密,使用md算法'''
    index = fileName.index('.')
    random_str = str(uuid.uuid1())
    preFileName = fileName[0:index] + random_str;
    fileEncode = hashlib.md5(preFileName.encode(encoding='UTF-8')).hexdigest()
    suffix = fileName[index:]
    return prefix + '_' + fileEncode + suffix


def checkBucketName(bucket_name):
    if not bucket_name:
        return "springlearn"
    return bucket_name


parser = argparse.ArgumentParser(description="图床工具")
parser.add_argument('-i', '--imgLocation', type=str, help='文件地址')
parser.add_argument('-b', '--bucket_name', type=str, help='bucket_name')
parser.add_argument('-p', '--prefix', type=str, help='bucket_name')
args = parser.parse_args()
bucket_name = checkBucketName(args.bucket_name)
# 文件的完整路径
fileLocation = args.imgLocation
# 命名前缀
prefix = args.prefix
# 根据文件路径获取文件名
fileName = fileByLocation(fileLocation)
# 对文件名进行加密
if (prefix == None):
    key = fileNameEncode(fileName, "learn")

else:
    key = fileNameEncode(fileName, prefix)

access_key = '换成自己的秘钥'
secret_key = '换成自己的秘钥'

q = Auth(access_key, secret_key)
token = q.upload_token(bucket_name, key, 3600)
ret, info = put_file(token, key, fileLocation)

base_table_head = ["文件名", "加密文件名", "上传路径", "外链", "时间", "成功"]
table = PrettyTable(base_table_head)
raw = list()
raw.append(fileName)
raw.append(key)
raw.append(fileLocation)
raw.append("https://img.springlearn.cn/{0}".format(key))
raw.append(time.strftime('%Y-%m-%d %H:%M:%S'))
raw.append(info.ok())
table.add_row(raw)
print(Color.green(str(table)))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107

# 懒人2.0版本

懒人2.0就是解决,懒人1.0的问题,不再需要每次上传时候进入到控制台,只要进行截图。然后输入快捷键,就会自动读取粘贴板图片进行上传,上传后发送通知,并且自动转换成markdown语法,重新放到粘贴板中,然后只用ctrl+v黏贴就可以了。于是我又又用了一年。

上面就是软件打开的样子,什么都没有,只绑定了一个快捷键。😂 如此简单。当执行快捷键后会自动上传,然后发出一个通知。如下。点击通知后自动打开图片,ctrl+v后直接输出到文档中。

于是我又用了一年。后来我又又又变懒了。于是懒人3.0诞生了。

# 懒人3.0版本

懒人3.0版本,我甚至连快捷键都不想按了。我还变的贪心了,我不仅要有快捷键我还要可视化,所见即所得,凡是能看到的图片都可以直接拖动上传,并且要具备我懒人2.0所有的功能。我甚至为了 解决看时间的问题,我还添加了一个时钟功能,来提醒我: 打工人,六点了,该下班了。不要在卷了。

甚至为了保护我的眼镜,还增加了一个主题功能,一键打开暗黑模式。


# 分享给大家

最后我把他开源了,支持window和mac系统。我想我应该还能再用一年吧。毕竟我还没想到,有更懒人的办法。

友情提醒: 如果要使用,最终还是要配置个人的空间。如果不会配置的,点击关注,我们细细交流。每人10个g免费个人空间。不用白不用。当然如果需要的话,也可以学习一下。如果不想学习就别折腾了,毕竟要费点脑子。


本文由西魏陶渊明版权所有。如若转载,请注明出处:西魏陶渊明
上次编辑于: 2022年8月22日 09:35
贡献者: lxchinesszz