您的位置:首页 > 编程语言 > Python开发

七牛云存储Python SDK使用教程 - 基本介绍

2015-01-07 17:23 435 查看

本教程旨在介绍如何使用七牛的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
是私钥。这一对密钥可以从七牛的后台获取。

小试牛刀

好了,做了上面的这些准备工作,我们就去上传一个简单的文件,练练手。

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()

运行结果为:

Upload file success!
Hash: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8
Key: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8

从上面我们可以看到,使用七牛的Python SDK上传文件的最基本的步骤是:

  1. 生成上传凭证
  2. 上传文件
  3. 解析回复结果

小结

综上所述,其实使用七牛的SDK来上传文件还是很简单的,接下来的教程,我们将在这个例子的基础上逐步了解更多关于文件上传的知识。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: