这篇文章给大家分享的是有关Python如何搭建Gitee图床的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
如果没有帐户,先进入Gitee主页注册账户,接着新建仓库,名称为resource
,路径为res
(使用res是为了使图片链接看起来更加简洁)
新建完成后需要初始化Readme.md
文件,同时复制地址(为了使用Gitee Pages服务):
然后打开服务选项:
点击Gitee Pages:
点击“启动”启动服务:
在计算机中找一个位置建一个文件夹,在文件夹中使用Git Bash
输入命令克隆仓库到本地:
git clone https://gitee.com/xxx/xxx.git
克隆完成后在本地生成了一个名为res
的文件夹,此时可以删除文件夹中的Readme.md
文件,在res
文件夹中新建空文件夹upload_images
在与res
同级的目录下新建空文件夹temp
用于存放待上传的文件:
进入TinyPng的主页(https://tinypng.com/),在右上角进行注册:
输入邮箱地址:
打开邮箱验证,点击邮件中的"Log in with magic link",点击刚刚注册的地方,选择"Account page":
注册成功后会出现如下页面,启用并复制"API Key"
TinyPng每月支持免费转换500张图片,并且重复的图片多次压缩只算做一次,这对图片插入量一般的人来说已经足够了,如果觉得一个月500张不够,又不想花钱,可以多注册几个号
脚本需要用到两个包:tinify
和GitPython
打开cmd命令提示符,输入安装指令:
pip install --upgrade tinify
pip install gitpython
如果失败可以尝试本地安装
在与res
同级的目录下新建upload.py
:
用python的IDE打开该py文件写入如下代码:
import random
import time
import os
import shutil
from git import Repo
import tinify
repo = Repo('./res') #创建版本库对象
tinify.key = '****************' #在此粘贴刚刚复制的API Key
exts = ['.png','.jpg','.bmp'] #支持的图像格式
compression = ['.png','.jpg'] #支持压缩的图像格式
srcdir = './temp' #源文件夹
dstdir = './res/upload_images' #目标文件夹
url = 'https://xxx.gitee.io/res/upload_images/' #图床路径(末尾必须加“/”),将xxx替换成自己的用户名
def random_hex(length):
result = hex(random.randint(0,16**length)).replace('0x','').lower()
if(len(result)<length):
result = '0'*(length-len(result))+result
return result
def auto_code(ext):
while True:
name = random_hex(8) #随机8位16进制编码
result = os.path.join(dstdir,name + ext)
if not os.path.exists(result):
break #目标路径不存在则可以移动图片
return result
def main():
f = open('./output.txt','w') #打开输出文件
list = os.listdir(srcdir) #列出文件夹下所有的目录与文件
for i in range(0,len(list)):
srcpath = os.path.join(srcdir,list[i])
if not os.path.isfile(srcpath):
continue #不是文件则跳过
ext=os.path.splitext(srcpath)[-1].lower() #获取文件扩展名
if ext not in exts:
continue #不是支持的图像格式则跳过
dstpath = auto_code(ext)
if ext in compression:
tinify.from_file(srcpath).to_file(srcpath) #压缩文件
shutil.move(srcpath,dstpath) #移动文件
print('成功压缩并移动:' + os.path.basename(srcpath))
else:
shutil.move(srcpath,dstpath) #移动文件
print('成功移动:' + os.path.basename(srcpath))
f.write(os.path.basename(srcpath) + ': + ')\n') #将原始文件名和与之对应的图片网址写入txt文件
f.close()
print('输出文件output.txt已生成')
print(repo.git.add('--all')) #添加全部更改
print(repo.git.commit('-m upload images')) #提交
print(repo.remote().push('master')) #推送
print('已推送至远程仓库,python即将退出')
time.sleep(1)
if __name__ == '__main__':
main()
将图片复制到temp
文件夹,运行upload.py
,在其运行完毕后打开Gitee Pages服务进行更新,然后打开output.txt
,复制里面的Markdown语句至Markdown编辑器即可看见图片
感谢各位的阅读!关于“Python如何搭建Gitee图床”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。