本教程旨在介紹如何使用七牛的Python SDK來快速地進行檔案上傳,下載,處理,管理等工作。
安裝
首先,要使用Python的SDK必須要先安裝。七牛的Python SDK是開源的,託管在Github上面,項目地址為https://github.com/qiniu/python-sdk。
安裝的方式可以如項目的說明上所說,用pip install qiniu。當然也可以直接clone一份原始碼下來直接使用。我一般喜歡直接clone原始碼,這樣的話,如果要對SDK做一些改動也是十分容易的。
最新版本的Python SDK需要依賴requests庫,所以要提前安裝好。安裝方式當然也可以用pip install requests。
開發環境
Python的開發環境有很多種選擇,如果喜歡文本的方式,比如vim,emacs,sublime text等都是很好的選擇,如果你喜歡IDE,那麼最流行的莫過於PyCharm了。PyCharm的最新版本到這裡下載。
Access Key和Secret Key
我們知道七牛雲端儲存的許可權校正機制基於一對密鑰,分別稱為Access Key和Secret Key。其中Access Key是公開金鑰,Secret Key是私密金鑰。這一對密鑰可以從七牛的後台擷取。
小試牛刀
好了,做了上面的這些準備工作,我們就去上傳一個簡單的檔案,練練手。
#coding=utf-8__author__ = 'jemy''''本例示範了一個簡單的檔案上傳。這個例子裡面,sdk根據檔案的大小選擇是Form方式上傳還是分區上傳。'''import qiniuaccessKey = ""secretKey = ""#解析結果def parseRet(retData, respInfo): if retData != None: print("Upload file success!") print("Hash: " + retData["hash"]) print("Key: " + retData["key"]) #檢查擴充參數 for k, v in retData.items(): if k[:2] == "x:": print(k + ":" + v) #檢查其他參數 for k, v in retData.items(): if k[:2] == "x:" or k == "hash" or k == "key": continue else: print(k + ":" + str(v)) else: print("Upload file failed!") print("Error: " + respInfo.text_body)#無key上傳,http請求中不指定key參數def upload_without_key(bucket, filePath): #產生上傳憑證 auth = qiniu.Auth(accessKey, secretKey) upToken = auth.upload_token(bucket, key=None) #上傳檔案 retData, respInfo = qiniu.put_file(upToken, None, filePath) #解析結果 parseRet(retData, respInfo)def main(): bucket = "if-pbl" filePath = "/Users/jemy/Documents/jemy.png" upload_without_key(bucket, filePath)if __name__ == "__main__": main()
運行結果為:
Upload file success!Hash: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8Key: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8
從上面我們可以看到,使用七牛的Python SDK上傳檔案的最基本的步驟是:
小結
綜上所述,其實使用七牛的SDK來上傳檔案還是很簡單的,接下來的教程,我們將在這個例子的基礎上逐步瞭解更多關於檔案上傳的知識。