您的位置:首頁>科技>正文

用七牛雲存儲實現博客圖床(二)——製作上傳工具

既然我們已經選擇了七牛, 那就開始吧。

關於怎麼註冊帳號, 建立空間這種事情這裡就不介紹了, 沒有什麼意義, 我自己操作的時候也沒記得有什麼坑, 如果有人有遇到問題可以在下面評論區留言

假如進展一切順利, 我們就在七牛有了一個bucket, 這個bucket就是我們存儲檔的空間了, 在七牛控制台的內容管理介面可以添加上傳檔。

呃。 。 必須吐槽一下, 七牛在的後臺檔管理實在是太亂了。 。 只能一下子列出所有檔, 不能按照路徑首碼來分類, 搜索也不能模糊匹配, 必須從路徑首碼開始輸入。 而七牛的意思好像是不建議用戶在直接在管理後臺管理檔 ,

所以提供了一個 叫做QRSBox的工具 , 這是一個可以同步本地某個資料夾的用戶端工具。 如果要更多的功能就沒有了, 所以我以後還是想辦法自己寫一個工具來管理吧。 環境準備

先不扯那麼遠, 我們先從上傳開始。 最近開始學習用Python, 那我們就用骯髒的py來寫吧(誤)

先到七牛的文檔中心找介面, 找到 Python的文檔 , 嗯需要安裝七牛的模組, 直接用pip安裝就行了。

這裡就有坑了, windows用戶會比較蛋疼, 為了安裝一個七牛模組, 你可能需要安裝pip這個包管理器, 為了安裝pip你還要安裝setuptools。 。 GG。 MacOS就很簡單了, 如果安裝了homebrew, 安裝所有東西都只是幾句話的事情。

這裡我已經安裝好了七牛, 如果沒有的話點右邊的加號就能搜索到所有的Python模組,

非常方便~

登陸 七牛開發者平臺 , 找到自己的Access Key和Secret Key, 複製下來, 除此之外還要準備好想上傳存儲空間的bucket名稱, 自訂功能變數名稱外鏈首碼(比如我的是 http://qn.inspoy.cc/ )。 現在我們已經有了4個字串, OK把他們保存在一個文字檔中。

正片在這裡

都準備萬全之後開始編寫代碼, 首先要先從這個文字檔中把資料讀出來

# load key access_key = '' secret_key = '' bucket_name = '' link_prefix = '' key_file = open('key.txt') key_lines = key_file.readlines for key_line in key_lines: key_key = key_line[:key_line.find('=')] key_val = key_line[key_line.find('=') + 1:] key_val = key_val.replace(' ', '').replace(' ', '') if key_key == 'access_key': access_key = key_val if key_key == 'secret_key': secret_key = key_val if key_key == 'bucket_name': bucket_name = key_val if key_key == 'link_prefix': link_prefix = key_val

然後創建一個授權物件Auth, 用來驗證身份, 當然不要忘了import七牛的模組

from qiniu import Auth # other code # initialize q = Auth(access_key, secret_key) # end

使用該授權物件去試圖生成一個指定bucket的上傳token

# key是bucket中的目的檔案名 key = '' # filepath是本地要上傳的檔案名 filepath = '' token = q.upload_token(bucket_name) ret, info = put_file(token, key, filepath, check_crc=True)

之後檢查一下返回值ret的狀態, 確認上傳過程是否成功, 如果上傳成功的話, info裡會存儲有本次上傳操作的相關資訊

assert ret['key'] == key assert ret['hash'] == etag(localfile) print(info)

注:ETag是七牛用來校驗檔的雜湊演算法,

具體請看 這裡

執行 put_file 後, 如果返回值正常, 再訪問七牛管理後臺看看, 是不是檔已經被上傳上去了

接下來就是輸入和結果的校驗和GUI了, 校驗方法詳見 github 上的代碼, GUI的話暫時選用了不用安裝額外協力廠商模組的TkInter, 雖然很簡陋。 。 但是可以用((

dot;)☆)

最後的結果是這個樣子的

這篇博客裡的所有圖片都是用這個工具上傳的啦, 由圖可見, 檔組織方式是按日期+原始檔案名來的, 為以防萬一最好還是不要用中文, 上傳成功後會輸出這個檔的外鏈, 複製出來就能直接用啦~

Next Article
喜欢就按个赞吧!!!
点击关闭提示