跳转到主要内容

从Plone或其他内容异步创建ZIP文件

项目描述

从Plone内容或Web服务异步创建ZIP文件

这是一个基本的模块,旨在异步创建ZIP文件。尽管它有一些内置的基本数据提取器,但它并不是一个即插即用的包,而是为集成商和附加产品作者设计的。

在请求-响应周期中创建ZIP文件可能会花费很多时间。使用这个包,将zip作业信息排队到任务队列中。

它支持collective.taskqueue(可选,由Redis支持)以及collective.zamqp(基于AMQP的解决方案,使用AMQP服务器,如RabbitMQ)。

ZIP文件在工作实例中创建。文件创建后,将触发一个事件。例如,可以通过它发送电子邮件通知。

创建状态(挂起、处理、完成)和时间戳(排队、开始、完成)在工作者实例之间共享。

工作者实例获取一个包含全局键settings(字典)和文件信息列表(字典列表)的作业信息(字典)。每个文件信息至少有一个内容项的有效UUID。对于列表中的每个文件信息,将创建一个文件。它使用ZCA通过collective.azipfele.interfaces import IZipContentExtractor来适配给定UUID的内容。如果文件信息包含extractor(字符串),则使用命名适配器。

IZipContentExtractor在调用时接受文件信息和全局设置。它应返回一个包含文件名和存储在ZIP中的数据的元组,该数据与文件名相关。返回的文件名也可以是相对路径。

安装

只需在您的buildout中依赖eggcollective.azipfele。ZCML将通过z3c.autoinclude自动加载。

Async Zip File Support作为附加组件安装到Plone控制面板或portal_setup中。或者,在您的metadata.xml配置文件中依赖profile-collective.azipfele:default

本包是为Plone 4.3或更高版本编写的。

源代码和贡献

如果您想帮助collective.azipfele的开发(改进、更新、错误修复等),这是一个很好的主意!

代码位于github collective

您可以通过github-collective克隆它或获取访问权限,并直接在项目上工作。

维护者是Jens Klein和BlueDynamics Alliance开发团队。我们感谢任何贡献,并且如果需要在PyPI上发布版本,请随时联系我们之一dev@bluedynamics dot com

许可证是GPL 2,请参阅文件LICENCE.rst

贡献者

  • Jens W. Klein <jens@bluedynamics.com>

  • Benjamin Stefaner

  • 最初由奥地利 Zumtobel Group AG 资助开发

变更日志

2.0.2 (2018-07-02)

  • 修复 #2:ZipIt 错误处理无法处理丢失的上下文 [do3cc, jensens]

2.0.1 (2017-10-27)

  • 允许匿名启动任务队列处理 [agitator]

2.0.0 (2017-01-12)

添加 collective.taskqueue 实现。 [jensens]

  • 重构排队代码,以允许额外的队列实现。这是一个破坏性更改!所有从旧 taskzamqp.py 导入的自定义代码都需要调整。现有代码和额外代码位于 queue 子目录下。 [jensens]

  • 根据Plone规则对isort头进行排序。 [jensens]

1.1.2 (2014-12-19)

  • “apostroph no catastroph”,用于日志的Unicode字符串 [agitator]

1.1.1 (2014-10-05)

  • 修复:下载视图中的错误 [jensens]

1.1 (2014-09-16)

  • 删除对collective.js.angular的冗余依赖 [jensens]

1.0

  • 使其工作

许可证

版权所有 (c) 2014,BlueDynamics Alliance,奥地利,瑞士,德国

GNU 通用公共许可证

复制、分发和修改的条款和条件

  1. 本许可证适用于任何包含版权持有人放置的通知,表明它可以按照本通用公共许可证的条款进行分发程序或其他作品。下面提到的“程序”指的是此类程序或作品,“基于程序的程序”是指程序或任何受版权法保护的衍生作品:也就是说,包含程序或其一部分的作品,无论是原样还是经过修改和/或翻译成另一种语言。(以下,翻译包括但不限于“修改”一词。)每个许可证持有人均称为“你”。

    本许可证不涵盖复制、分发和修改以外的活动;它们超出其范围。运行程序的行为不受限制,仅当程序的内容构成基于程序的程序(无论是否通过运行程序生成)时,程序输出才受本许可证的保护。这是否属实取决于程序的行为。

  2. 你可以以你收到的形式,在任何媒介上复制和分发程序源代码的准确副本,只要你在每个副本上明显且适当地公布适当的版权声明和免责声明;保持所有提及本许可证和不存在任何保证的通知完整;并给任何程序的其他接收者一份本许可证的副本以及程序。

    你可以为转移副本的物理行为收费,并且你可以选择以付费的方式提供保证。

2 你可以修改程序的副本或其任何部分,从而形成基于程序的程序,并根据上述第1节的规定复制和分发此类修改或作品,前提是你还满足以下所有条件

a) 你必须使修改后的文件包含显眼的声明,说明你已更改文件以及任何更改的日期。

b) 你必须使任何你分发或发布的作品,无论整体还是部分包含或源自程序或其任何部分,都根据本许可证的条款免费许可给所有第三方。

c) 如果修改后的程序在运行时通常以交互方式读取命令,你必须使其在以最普通的方式启动用于此类交互使用时,打印或显示一个公告,包括适当的版权声明和一个无保证的通知(或者,如果你提供保证,则说明你提供保证),以及用户可以按照这些条件重新分发程序的通知,并告诉用户如何查看本许可证的副本。(例外:如果程序本身是交互式的但通常不打印此类公告,则基于程序的你的作品不需要打印公告。)

这些要求适用于修改后的作品整体。如果该作品的可识别部分不是源自程序,并且可以合理地视为独立的和单独的作品,那么当你将其作为单独的作品分发时,本许可证及其条款不适用于那些部分。但当你将相同的部分作为整体的一部分分发,而该整体是基于程序的程序时,整体的分发必须符合本许可证的条款,其许可权扩展到整体的所有部分,因此无论谁编写它,每个部分都必须如此。

因此,本节的目的不是声称权利或争议你对你完全由你编写的作品的权力;相反,目的是行使控制基于程序的衍生作品或集体作品分发的权利。

因此,本节的目的不是声称权利或争议你对你完全由你编写的作品的权力;相反,目的是行使控制基于程序的衍生作品或集体作品分发的权利。

此外,仅将另一项非基于程序的作品与程序(或基于程序的作品)存储在存储或分发介质的体积上,并不会使该作品纳入本许可证的范围内。

  1. 您可以在上述第1条和第2条的条款下,以目标代码或可执行形式复制和分发程序(或根据第2节基于它的作品),前提是您还做以下之一:

    a) 伴随完整的相应机器可读源代码,这些代码必须在上述第1条和第2条的条款下,使用通常用于软件交换的介质进行分发;或者,

    b) 伴随一份书面提议,有效期为至少三年,向任何第三方提供完整的机器可读源代码副本,以不超过您实际进行源代码分发的成本的代价进行分发,这些代码必须按照上述第1条和第2条的条款,在通常用于软件交换的介质上进行分发;或者,

    c) 伴随您收到的有关分发相应源代码提议的信息。(此替代方案仅适用于非商业分发,并且仅在您根据上述b小节收到以目标代码或可执行形式提供该提议的程序的情况下允许。)

    作品源代码是指修改作品的首选形式。对于可执行作品,完整的源代码意味着包含的所有模块的所有源代码,以及任何相关的接口定义文件,以及用于控制编译和安装可执行文件的脚本。然而,作为一项特殊例外,分发的源代码无需包含通常与操作系统的主要组件(编译器、内核等)一起分发的任何内容(无论是源代码还是二进制形式),除非该组件本身伴随可执行文件。

    如果通过提供从指定地点复制可执行或目标代码的方式进行分发,则提供从同一地点复制源代码的等效访问权限视为源代码的分发,即使第三方没有被要求与目标代码一起复制源代码。

  2. 您不能复制、修改、再许可或分发程序,除非本许可证明确允许。任何其他复制、修改、再许可或分发程序的行为都是无效的,并且将自动终止您根据本许可证享有的权利。然而,从您那里获得副本或权利的各方,只要这些方完全遵守,其许可证不会被终止。

  3. 您不必接受本许可证,因为您没有签署它。然而,没有其他许可授予您修改或分发程序或其派生作品的权利。如果未接受本许可证,这些行为将受到法律的禁止。因此,通过修改或分发程序(或基于程序的任何作品),您表明您接受本许可证以进行修改或分发,以及所有关于复制、分发或修改程序或基于它的作品的条款和条件。

  4. 每次您重新分发程序(或基于程序的任何作品),接收者自动从原始许可方获得一份许可证,以复制、分发或修改程序,前提是遵守这些条款和条件。您不得对受让人行使本条款授予的权利施加任何进一步的限制。您不负责强制第三方遵守本许可证。

  5. 如果由于法院判决、专利侵权指控或其他原因(不仅限于专利问题),对你(无论是由法院命令、协议或其他方式)施加的条件与本许可证的条件相矛盾,这并不能使你免除本许可证的条件。如果你无法同时满足本许可证下的义务和任何其他相关义务而进行分发,那么作为结果,你可能根本不能分发该程序。例如,如果专利许可不允许所有通过你直接或间接获取副本的人免费重新分发程序,那么满足这两个条件的方法就是完全停止分发程序。

    如果在本节任何部分在任何特定情况下被认为无效或不可执行,则本节其余部分应适用,并且本节作为一个整体应在其他情况下适用。

    本节的目的不是诱导你侵犯任何专利或其他财产权主张,或质疑任何此类主张的有效性;本节唯一目的是保护免费软件分发系统的完整性,该系统通过公共许可实践实施。许多人已经对该系统通过广泛分布的软件作出了慷慨的贡献,他们依赖于该系统的统一应用;作者/捐赠者决定是否愿意通过任何其他系统分发软件,许可证持有人无权强迫这种选择。

    本节旨在彻底阐明本许可证其余部分被认为产生的后果。

  6. 如果由于专利或版权接口,某些国家限制分发和使用程序,将程序置于本许可证下的原始版权所有者可以添加一个明确的地理分发限制,排除这些国家,以便仅在或在这些国家之外允许分发。在这种情况下,本许可证将此限制作为如果在本许可证正文中写入的那样来合并。

  7. 自由软件基金会可能会不时发布修订版和/或新的通用公共许可证版本。这些新版本的精神将与当前版本相似,但在细节上可能会有所不同,以解决新的问题或关注点。

    每个版本都有一个区分性的版本号。如果程序指定了适用于它的本许可证的版本号,并指定“任何后续版本”,你可以选择遵循该版本或由自由软件基金会发布的任何后续版本的条款和条件。如果程序没有指定本许可证的版本号,你可以选择自由软件基金会发布的任何版本。

  8. 如果你希望将程序的部分内容纳入其他分发条件不同的自由程序中,请写信给作者请求许可。对于由自由软件基金会拥有的版权软件,请写信给自由软件基金会;我们有时会对此类请求作出例外。我们的决定将受两个目标的指导,即保护我们免费软件的所有派生品的免费状态,以及促进软件的一般共享和重用。

无保证

  1. 由于程序免费许可,在适用的法律允许的范围内,对该程序没有保证。除非以书面形式另行声明,版权所有者/或其他人提供程序“按原样”不提供任何形式的保证,无论是明示的还是隐含的,包括但不限于对适销性和特定用途适用性的隐含保证。程序的质量和性能的全部风险由你承担。如果程序被证明有缺陷,你将承担所有必要的服务、维修或更正的费用。

  2. 在任何情况下,除非适用法律要求或经书面同意,否则任何版权所有者或任何其他可能修改和/或根据上述许可重新分发程序的当事人,对您因使用或无法使用该程序而造成的损害,包括任何一般性、特殊性、偶然性或后果性损害(包括但不限于数据丢失或数据被错误地呈现或您或第三方遭受的损失,或程序无法与其他程序一起运行),即使该持有人或其他当事人已被告知此类损害的可能性,也不承担责任。

条款和条件结束

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

collective.azipfele-2.0.2.tar.gz (31.4 kB 查看散列)

上传时间

由以下支持