這篇文章主要介紹了通過Python來使用七牛云存儲的方法詳解,七牛云存儲是國內領先的服務器數據備份解決方案商,需要的朋友可以參考下
本教程旨在介紹如何使用七牛的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 qiniu
- accessKey = "<Your Access Key>"
- secretKey = "<Your Secret Key>"
- #解析結果
- 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: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8
- Key: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8
從上面我們可以看到,使用七牛的Python SDK上傳文件的最基本的步驟是:
生成上傳憑證
上傳文件
解析回復結果
小結
綜上所述,其實使用七牛的SDK來上傳文件還是很簡單的,接下來的教程,我們將在這個例子的基礎上逐步了解更多關于文件上傳的知識。
新聞熱點
疑難解答