既然我們已經選擇了七牛,那就開始吧。
關於怎麼註冊賬號,建立空間這種事情這裡就不介紹了,沒有什麼意義,我自己操作的時候也沒記得有什麼坑,如果有人有遇到問題可以在下面評論區留言
假如進展一切順利,我們就在七牛有了一個bucket,這個bucket就是我們存儲文件的空間了,在七牛控制檯的內容管理界面可以添加上傳文件。
呃。。必須吐槽一下,七牛在的後臺文件管理實在是太亂了。。只能一下子列出所有文件,不能按照路徑前綴來分類,搜索也不能模糊匹配,必須從路徑前綴開始輸入。而七牛的意思好像是不建議用戶在直接在管理後臺管理文件 ,所以提供了一個 叫做QRSBox的工具 ,這是一個可以同步本地某個文件夾的客戶端工具。如果要更多的功能就沒有了,所以我以後還是想辦法自己寫一個工具來管理吧。 環境準備
先不扯那麼遠,我們先從上傳開始。最近開始學習用Python,那我們就用骯髒的py來寫吧(誤)
先到七牛的文檔中心找接口,找到 Python的文檔 ,嗯需要安裝七牛的模塊,直接用pip安裝就行了。
這裡就有坑了,windows用戶會比較蛋疼,為了安裝一個七牛模塊,你可能需要安裝pip這個包管理器,為了安裝pip你還要安裝setuptools。。GG。MacOS就很簡單了,如果安裝了homebrew,安裝所有東西都只是幾句話的事情。
所以對於Windows用戶來說,最好的方法還是下載安裝一個 PyCharm ,來自JetBrain的Python IDE,這裡面自帶pip,可視化安裝各種模塊。
這裡我已經安裝好了七牛,如果沒有的話點右邊的加號就能搜索到所有的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('\r', '').replace('\n', '') 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;)☆)
最後的結果是這個樣子的
這篇博客裡的所有圖片都是用這個工具上傳的啦,由圖可見,文件組織方式是按日期+原始文件名來的,為以防萬一最好還是不要用中文,上傳成功後會輸出這個文件的外鏈,複製出來就能直接用啦~
閱讀更多 中國存儲 的文章