国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python搭建Gitee圖床的示例代碼

Python搭建Gitee圖床的示例代碼

2022-01-26 11:04《虛幻私塾》 Python

在寫博客的過程中經常要插入圖片,本文將使用Python實現對上傳的圖片自動壓縮,自動編碼,以及自動推送到遠程倉庫,感興趣的可以了解一下

 

摘要

在寫博客的過程中經常要插入圖片,許多博客平臺提供了圖片上傳的服務,但是不能保證長期有效,不同平臺還不能通用,所以要通過搭建統一的圖床來實現。有用服務器作為圖床和第三方圖床,前者限制多,需要備案,后者不是很可靠,而用代碼托管平臺做圖床,既穩定可靠沒有很大限制,而且數據實現同步,即使云端的數據丟失了,本地還有備份,而在中國,為了提升訪問速度,我們并不選取GitHub做圖床,而是選擇了Gitee,本文將使用Python實現對上傳的圖片自動壓縮,自動編碼,以及自動推送到遠程倉庫,但由于Gitee的限制,最后仍需要手動對Gitee Pages進行更新

 

新建倉庫

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

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

Python搭建Gitee圖床的示例代碼

然后打開服務選項:

Python搭建Gitee圖床的示例代碼

點擊Gitee Pages:

Python搭建Gitee圖床的示例代碼

點擊“啟動”啟動服務:

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圖床的示例代碼

注冊成功后會出現如下頁面,啟用并復制"API Key"

Python搭建Gitee圖床的示例代碼

TinyPng每月支持免費轉換500張圖片,并且重復的圖片多次壓縮只算做一次,這對圖片插入量一般的人來說已經足夠了,如果覺得一個月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") #創建版本庫對象
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) + ":![](" + url + os.path.basename(dstpath) + ")
") #將原始文件名和與之對應的圖片網址寫入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圖床的示例代碼的文章就介紹到這了,更多相關Python搭建Gitee圖床內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/biggbang/article/details/120799457

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 综合色av| 亚洲 欧美 日韩 在线 | av成人在线观看 | 欧美日韩中文在线观看 | 婷婷综合久久 | 精品欧美乱码久久久久久1区2区 | 国产片在线观看 | 国产一区二区在线免费观看 | 国产亚洲欧美一区 | 久久久久久国产一级毛片高清版 | 亚洲黄色免费 | 在线观看一区二区三区四区 | 精品国产久| 欧美久久免费 | 毛片色| 欧美,日韩,国产精品免费观看 | 国产91在线观看 | 久久久久久网站 | 最新免费av网站 | 做a视频免费观看 | 日本好好热视频 | 日韩在线精品视频 | 日韩免费一区 | 久久99精品久久久久久久青青日本 | 亚洲国产精品久久久 | 亚洲精品一二三 | 欧美激情一区二区 | 亚洲精品视频在线观看免费视频 | 亚洲欧美制服诱惑 | 亚洲八区 | 亚洲精品久久久久久久久久久 | 激情欧美日韩一区二区 | 狠狠干狠狠操 | 欧美成人观看 | 91精品久久久久久久久久久 | 久草青青草| 少妇一区二区三区免费观看 | 在线成人av | 成人精品鲁一区一区二区 | 狠狠狠狠狠狠 | 国产精品一码二码三码在线 |