首页 > 编程 > Python > 正文

通过Python来使用七牛云存储的方法详解

2020-01-04 17:59:19
字体:
来源:转载
供稿:网友

这篇文章主要介绍了通过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是私钥。这一对密钥可以从七牛的后台获取。

通过Python来使用七牛云存储的方法详解

小试牛刀

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

 

 
  1. #coding=utf-8 
  2. __author__ = 'jemy' 
  3. ''
  4. 本例演示了一个简单的文件上传。 
  5.  
  6. 这个例子里面,sdk根据文件的大小选择是Form方式上传还是分片上传。 
  7. ''
  8. import qiniu 
  9.  
  10. accessKey = "<Your Access Key>" 
  11. secretKey = "<Your Secret Key>" 
  12.  
  13. #解析结果 
  14. def parseRet(retData, respInfo): 
  15. if retData != None: 
  16. print("Upload file success!"
  17. print("Hash: " + retData["hash"]) 
  18. print("Key: " + retData["key"]) 
  19.  
  20. #检查扩展参数 
  21. for k, v in retData.items(): 
  22. if k[:2] == "x:"
  23. print(k + ":" + v) 
  24.  
  25. #检查其他参数 
  26. for k, v in retData.items(): 
  27. if k[:2] == "x:" or k == "hash" or k == "key"
  28. continue 
  29. else
  30. print(k + ":" + str(v)) 
  31. else
  32. print("Upload file failed!"
  33. print("Error: " + respInfo.text_body) 
  34.  
  35. #无key上传,http请求中不指定key参数 
  36. def upload_without_key(bucket, filePath): 
  37. #生成上传凭证 
  38. auth = qiniu.Auth(accessKey, secretKey) 
  39. upToken = auth.upload_token(bucket, key=None) 
  40.  
  41. #上传文件 
  42. retData, respInfo = qiniu.put_file(upToken, None, filePath) 
  43.  
  44. #解析结果 
  45. parseRet(retData, respInfo) 
  46.  
  47.  
  48. def main(): 
  49. bucket = "if-pbl" 
  50. filePath = "/Users/jemy/Documents/jemy.png" 
  51. upload_without_key(bucket, filePath) 
  52.  
  53.  
  54. if __name__ == "__main__"
  55. main() 

运行结果为:

 

 
  1. Upload file success! 
  2. Hash: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8 
  3. Key: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8 

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

生成上传凭证

上传文件

解析回复结果

小结

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表