通過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。
開發(fā)環(huán)境
Python的開發(fā)環(huán)境有很多種選擇,如果喜歡文本的方式,比如vim,emacs,sublime text等都是很好的選擇,如果你喜歡IDE,那么最流行的莫過于PyCharm了。PyCharm的最新版本到這里下載。
Access Key和Secret Key
我們知道七牛云存儲的權(quán)限校驗機制基于一對密鑰,分別稱為Access Key和Secret Key。其中Access Key是公鑰,Secret Key是私鑰。這一對密鑰可以從七牛的后臺獲取。

小試牛刀
好了,做了上面的這些準備工作,我們就去上傳一個簡單的文件,練練手。
#coding=utf-8
__author__ = 'jemy'
'''
本例演示了一個簡單的文件上傳。
這個例子里面,sdk根據(jù)文件的大小選擇是Form方式上傳還是分片上傳。
'''
import qiniu
accessKey = "<Your Access Key>"
secretKey = "<Your Secret Key>"
#解析結(jié)果
def parseRet(retData, respInfo):
if retData != None:
print("Upload file success!")
print("Hash: " + retData["hash"])
print("Key: " + retData["key"])
#檢查擴展參數(shù)
for k, v in retData.items():
if k[:2] == "x:":
print(k + ":" + v)
#檢查其他參數(shù)
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參數(shù)
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)
#解析結(jié)果
parseRet(retData, respInfo)
def main():
bucket = "if-pbl"
filePath = "/Users/jemy/Documents/jemy.png"
upload_without_key(bucket, filePath)
if __name__ == "__main__":
main()
運行結(jié)果為:
Upload file success! Hash: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8 Key: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8
從上面我們可以看到,使用七牛的Python SDK上傳文件的最基本的步驟是:
- 生成上傳憑證
- 上傳文件
- 解析回復結(jié)果
小結(jié)
綜上所述,其實使用七牛的SDK來上傳文件還是很簡單的,接下來的教程,我們將在這個例子的基礎上逐步了解更多關于文件上傳的知識。
相關文章
Python實現(xiàn)的json文件讀取及中文亂碼顯示問題解決方法
這篇文章主要介紹了Python實現(xiàn)的json文件讀取及中文亂碼顯示問題解決方法,涉及Python針對json文件的讀取載入、編碼轉(zhuǎn)換等相關操作技巧,需要的朋友可以參考下2018-08-08
詳解用Python把PDF轉(zhuǎn)為Word方法總結(jié)
這篇文章主要介紹了詳解用Python把PDF轉(zhuǎn)為Word方法總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04
python如何通過正則匹配指定字符開頭與結(jié)束提取中間內(nèi)容
這篇文章主要介紹了python通過正則匹配指定字符開頭與結(jié)束提取中間內(nèi)容的操作方法,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02
Flask框架踩坑之a(chǎn)jax跨域請求實現(xiàn)
這篇文章主要介紹了Flask框架踩坑之a(chǎn)jax跨域請求實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
使用OpenCV實現(xiàn)鼠標事件回調(diào)功能并繪制圖形
這篇文章主要為大家詳細介紹了如何使用OpenCV實現(xiàn)鼠標事件回調(diào)功能,并通過鼠標操作在圖像上繪制圓圈和矩形,感興趣的小伙伴可以了解下2024-11-11
基于Python實現(xiàn)批量讀取大量nc格式文件并導出全部時間信息
這篇文章主要為大家詳細介紹了如何基于Python語言,逐一讀取大量.nc格式的多時相柵格文件并導出其中所具有的全部時間信息的方法,需要的可以參考下2024-01-01

