存储服务的统一云存储api。

cloudstorage的Python项目详细描述


Cloud Storage是一个python+3.4包,它为 云存储服务:亚马逊简单存储服务(S3) 微软azure存储,minio云存储,rackspace云文件, 谷歌云存储,以及本地文件系统。

云存储的灵感来自Apache Libcloud。 apache libcloud存储的优点是:

  • 完全支持Python3。
  • 生成用于下载和上载文件的临时签名URL。
  • 支持请求和响应头,如内容处理。
  • Python!遍历容器中的所有blob和 使用各自对象的存储。

用法

>>>fromcloudstorage.drivers.amazonimportS3Driver>>>storage=S3Driver(key='<my-aws-access-key-id>',secret='<my-aws-secret-access-key>')>>>container=storage.create_container('avatars')>>>container.cdn_url'https://avatars.s3.amazonaws.com/'>>>avatar_blob=container.upload_blob('/path/my-avatar.png')>>>avatar_blob.cdn_url'https://s3.amazonaws.com/avatars/my-avatar.png'>>>avatar_blob.generate_download_url(expires=3600)'https://avatars.s3.amazonaws.com/my-avatar.png?''AWSAccessKeyId=<my-aws-access-key-id>''&Signature=<generated-signature>''&Expires=1491849102'>>>container.generate_upload_url('user-1-avatar.png',expires=3600){'url':'https://avatars.s3.amazonaws.com/','fields':{'key':'user-1-avatar.png','AWSAccessKeyId':'<my-aws-access-key-id>','policy':'<generated-policy>','signature':'<generated-signature>'}}

安装

要安装云存储:

pip install cloudstorage

同时安装将要使用的存储驱动程序:

pip install cloudstorage[amazon]
pip install cloudstorage[google]
pip install cloudstorage[local]
pip install cloudstorage[microsoft]
pip install cloudstorage[minio]
pip install cloudstorage[rackspace]

变更日志

0.10.0(2019-08-10)

错误

  • 当远程(#47)中缺少内容md5时,azureget_blob引发TypeError。谢谢@matt carr。
  • AzureStorageDriver读取流两次而不倒带(#44)。谢谢@matt carr。
  • 更新包依赖项以修复测试(#43)。

从0.9.0更改:

  • 如果未填充内容md5,azure驱动程序将发出警告。
  • 如果凭据文件不存在,则不会运行google驱动程序测试。

0.9.0(2018-11-29)

功能

  • 可以使用DriverName.validate_credentials()#34)验证驱动程序身份验证。

从0.8.0更改:

  • 使用无效的凭据文件初始化GoogleStorageDriver将 引发CredentialsError异常,而不是CloudStorageError

0.8.0(2018-11-06)

功能

  • BlobContainermeta_data现在是不区分大小写的字典。
  • 为minio云存储添加新的驱动程序(#25)。 使用pip install cloudstorage[minio]安装驱动程序要求。

其他

  • 移动到包的src文件夹结构。

0.7.0(2018-10-03)

功能

  • Cache-Control支持Amazon、Google、Local和Microsoft(#11)。
  • 现在,每个驱动程序的包依赖项都是可选的(#4)。

其他

  • 删除rackspace包依赖项rfc6266_parser
  • flake8linting和sphinxdoc building添加到tox和travis。

0.6(2018-07-24)

  • 将元数据从setup.py复制到setup.cfg
  • 在测试期间调用google云存储后端时添加速率限制超时。
  • 解码本地文件属性值时捕获UnicodeDecodeError
  • 升级依赖项并包含requirements.txtdev-requirements.txt

0.5(2018-02-26)

  • 将rackspacesdk更新到0.7.5并修复中断的api调用(#14)。

0.4(2017-08-29)

  • 实现Microsoft azure存储驱动程序(#1)。
  • 二进制流(#7#8)的google upload blob失败。
  • 使用mypy修复了类型批注。
  • 使用flake8建议格式化代码。

0.3(2017-05-24)

  • 修复了#6:将kwargs添加到每个驱动程序的init方法。

0.2(2017-04-21)

  • 将pip缓存添加到travis yml文件以加速测试。
  • 将wheel python tag设置为py3 only
  • 将tox设置为将所有env变量传递到py.test
  • 添加travis repo加密的env变量以运行测试。

0.1(2017-04-20)

  • 第一次释放。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java:不解析XML的简单XML。例外   KIE Workbench的java自定义UI   java将元素从bucket移动到LinkedList,但有一个元素被完全删除   如何将java stream collect转换为scala   java运行AsynkTask多次不工作   java组织。xml。萨克斯。SAXParseException:cvccomplextype。2.4.c:匹配的通配符是严格的   java是一种计算排序算法所需时间的合适方法   java在O(logn)时间内对排序整数数组中具有相同数字的数字进行计数   xpages从当前数据库javaAgent调用另一个数据库的javaAgent   java如何在instagram中上传特定位置的所有照片   JavaApachePOI可以有效地删除多个列   java创建的对象数   java我可以在关闭连接时关闭Oracle JDBC自动提交吗?