溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何搭建Gitee圖床

發(fā)布時間:2021-10-18 09:15:12 來源:億速云 閱讀:181 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Python如何搭建Gitee圖床的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

新建倉庫

如果沒有帳戶,先進入Gitee主頁注冊賬戶,接著新建倉庫,名稱為resource,路徑為res(使用res是為了使圖片鏈接看起來更加簡潔)

新建完成后需要初始化Readme.md文件,同時復(fù)制地址(為了使用Gitee Pages服務(wù)):

Python如何搭建Gitee圖床

然后打開服務(wù)選項:

Python如何搭建Gitee圖床

點擊Gitee Pages:

Python如何搭建Gitee圖床

點擊“啟動”啟動服務(wù):

Python如何搭建Gitee圖床

克隆倉庫

在計算機中找一個位置建一個文件夾,在文件夾中使用Git Bash輸入命令克隆倉庫到本地:

git clone https://gitee.com/xxx/xxx.git

克隆完成后在本地生成了一個名為res的文件夾,此時可以刪除文件夾中的Readme.md文件,在res文件夾中新建空文件夾upload_images

在與res同級的目錄下新建空文件夾temp用于存放待上傳的文件:

Python如何搭建Gitee圖床

獲取TinyPng的"API Key"

進入TinyPng的主頁(https://tinypng.com/),在右上角進行注冊:

Python如何搭建Gitee圖床

輸入郵箱地址:

Python如何搭建Gitee圖床

打開郵箱驗證,點擊郵件中的"Log in with magic link",點擊剛剛注冊的地方,選擇"Account page":

Python如何搭建Gitee圖床

注冊成功后會出現(xiàn)如下頁面,啟用并復(fù)制"API Key"

Python如何搭建Gitee圖床

TinyPng每月支持免費轉(zhuǎn)換500張圖片,并且重復(fù)的圖片多次壓縮只算做一次,這對圖片插入量一般的人來說已經(jīng)足夠了,如果覺得一個月500張不夠,又不想花錢,可以多注冊幾個號

安裝需要的Python包

腳本需要用到兩個包:tinifyGitPython

打開cmd命令提示符,輸入安裝指令:

pip install --upgrade tinify
pip install gitpython

如果失敗可以嘗試本地安裝

編寫Python腳本

在與res同級的目錄下新建upload.py

Python如何搭建Gitee圖床

用python的IDE打開該py文件寫入如下代碼:

import random
import time
import os
import shutil
from git import Repo
import tinify

repo = Repo('./res') #創(chuàng)建版本庫對象
tinify.key = '****************' #在此粘貼剛剛復(fù)制的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) + ':![](' + url + os.path.basename(dstpath) + ')\n') #將原始文件名和與之對應(yīng)的圖片網(wǎng)址寫入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()

測試功能

將圖片復(fù)制到temp文件夾,運行upload.py,在其運行完畢后打開Gitee Pages服務(wù)進行更新,然后打開output.txt,復(fù)制里面的Markdown語句至Markdown編輯器即可看見圖片

感謝各位的閱讀!關(guān)于“Python如何搭建Gitee圖床”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI