本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工做。python
首先,要使用Python的SDK必需要先安装。七牛的Python SDK是开源的,托管在Github上面,项目地址为https://github.com/qiniu/python-sdk。git
安装的方式能够如项目的说明上所说,用pip install qiniu
。固然也能够直接clone
一份源代码下来直接使用。我通常喜欢直接clone
源代码,这样的话,若是要对SDK作一些改动也是十分容易的。github
最新版本的Python SDK须要依赖requests
库,因此要提早安装好。安装方式固然也能够用pip install requests
。vim
Python的开发环境有不少种选择,若是喜欢文本的方式,好比vim,emacs,sublime text等都是很好的选择,若是你喜欢IDE,那么最流行的莫过于PyCharm
了。PyCharm
的最新版本到这里下载。七牛云存储
咱们知道七牛云存储的权限校验机制基于一对密钥,分别称为Access Key
和Secret Key
。其中Access Key
是公钥,Secret Key
是私钥。这一对密钥能够从七牛的后台获取。spa
好了,作了上面的这些准备工做,咱们就去上传一个简单的文件,练练手。code
python#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()
运行结果为:orm
Upload file success! Hash: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8 Key: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8
从上面咱们能够看到,使用七牛的Python SDK上传文件的最基本的步骤是:blog
综上所述,其实使用七牛的SDK来上传文件仍是很简单的,接下来的教程,咱们将在这个例子的基础上逐步了解更多关于文件上传的知识。教程