从乔治·西布尔的b2blaze(0.1.10)中派生出来的。作者的全部功劳。原始包:https://github.com/sibblegp/b2blaze

b2blaze的Python项目详细描述


b2blaze

circlecicode coverage

欢迎使用b2blaze python库。

Backblaze B2提供了Internet上最便宜的云对象存储和传输。相比之下,aws s3的存储成本要高出320%,传输到互联网的成本要高出400%。

这个库将允许您轻松地与b2 bucket和文件交互,将它们作为python 2和3中的一级对象。它是根据麻省理工学院的许可证,所以请随意使用它在任何地方!如果您喜欢,请随意贡献或请求功能。

安装

要安装b2blaze,请在适当的环境中运行以下命令:

pip install b2blaze

设置

运行b2blaze需要密钥id和应用程序密钥。您可以在b2门户中获取这些信息。然后,将它们传递到b2()或设置环境变量b2_key_id和b2_application_key。

示例用法

b2blaze是围绕oop原则构建的,因此所有bucket和文件都是可以交互的对象。让我们看一个示例,其中我们将所有文件列在一个bucket中:

fromb2blazeimportB2b2=B2()bucket=b2.buckets.get('test_bucket')files=bucket.files.all()

文件将是一个包含所有属性的b2file对象列表,然后可以通过运行:

content=files[0].download()

这是一个bytesio对象,您可以以任何方式操作它,包括本地保存或在网站上服务。

指南

b2对象

fromb2blazeimportB2b2=B2()

b2对象是访问b2blaze功能的方式。您可以选择将"key_id"和"application_key"作为命名参数传入,但您可能应该将它们设置为如上所述的环境变量。

bucket本质上是b2中最高级别的文件夹,类似于aws s3中bucket的使用方式。

桶属性

bucket_idbucket_namebucket_typebucket_infolifecycle_rulesrevisioncors_rulesdeleted

列出所有存储桶

buckets=b2.buckets.all()

创建一个bucket
bucket=b2.buckets.create('test_bucket',security=b2.buckets.public)

bucket可以是公共的,也可以是私有的。这不会改变库的功能,除非您在使用文件URL时需要手动授权(请参见下文)。

检索存储桶

bucket_by_name=b2.buckets.get('test_bucket')bucket_by_id=b2.buckets.get(bucket_id='abcd')

删除存储桶

bucket.delete()

这将删除bucket和其中的所有文件。目前还没有确认。小心使用。

文件

文件与本地存储的文件相同。它们可以存储在存储桶中的文件夹中,但这意味着它们的名称就像"folder/test.txt"。文件夹和文件之间没有区别。

文件属性

pip install b2blaze
0

列出存储桶中的所有文件
pip install b2blaze
1

注意:一个bucket中可能有上万个文件(或更多)。此操作将获取信息并为所有这些对象创建对象。这可能需要相当长的时间,而且运行起来计算成本很高。

上载文件
pip install b2blaze
2

注意:您不必调用.read(),而是可以将文件直接发送到内容。这将允许文件缓冲区直接通过http传输到b2并节省大量内存。此外,内容必须是二进制或二进制流。

上载大文件

pip install b2blaze
3

注意:您不能对文件调用.read(),因为函数将在num_threads上为您查找和缓冲文件。根据背板建议,部件尺寸默认为建议部件尺寸来自b2_authorize_帐户(通常为100MB)。num_threads默认为4个线程。最小零件尺寸为5MB,必须至少有两个零件。

检索文件信息(下载前必需)

pip install b2blaze
4

下载文件
pip install b2blaze
5

这将返回一个bytesio对象,您可以使用pil之类的工具在python中操作它,也可以在网站上服务,或者像这样轻松地保存:

pip install b2blaze
6

删除文件版本
pip install b2blaze
7

这将删除文件的单个版本。(有关说明,请参见Backblaze上的文件版本文档

隐藏(也称为"软删除")文件

pip install b2blaze
8

这将隐藏一个文件(也称为"软删除"),以便按名称下载时找不到该文件,但仍存储该文件的以前版本。(有关详细信息,请参见backblaze上的隐藏文件文档

测试

用pytest进行单元测试 运行之前,必须设置环境变量:b2_key_idb2_application_key

**运行测试**

pip install b2blaze
9

许可证

麻省理工学院许可证

版权所有(c)2018 George Sibble

兹免费准许任何人取得副本 本软件和相关文档文件("软件")的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:

上述版权公告及本许可公告须包括在 软件的副本或大部分。

本软件按"原样"提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合某一特定目的和非侵犯性。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与本软件有关,或使用或与本软件的其他交易有关。 软件。

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

推荐PyPI第三方库


热门话题
从FXML转换为JAVA时,不会加载javafx映像   泛型Java模板调用运行时推断   javascript为什么我的活动没有响应我在样式文件中所做的更改?   如何在HttpClient(java、apache)中自动重定向   java CSV到H2字符编码不匹配   在Java中使用BorderLayout按比例调整用户界面大小   Java中的重定向异常   java RecyclerView搜索过滤器仅过滤一个值   java标准api multiselect与count和distinct不起作用   java为什么我在Solr上做的每一个查询都会占用我10s MB的堆内存?   java如何使用方法解决:锁定帐户三次后?   java如何实现睡眠以显示图像的幻灯片   在Java中,按对象参数对映射<对象,列表<对象>>进行排序   java无法从密钥库读取密钥   java试图将水平recycleview嵌套到垂直recycleview中   认识C++对Web应用开发的重要性   使用共享对象实例化多个Runnable的java含义?   javabeans何时使用JavaBean?