Plone的Zip文件提取器
项目描述
简介
此包用于从zip文件中提取文件和目录并将它们添加到Plone应用程序中。
该模块提供了一个视图,显示zip文件的内容和相关文件大小。从该视图可以提取文件的所有内容或选择要提取的元素子集。
提取本身设计得尽可能安全,特别是
防止zip炸弹
检查要提取的文件宣布的大小(从zip文件头中获取)并在大小超过时停止提取。
我们还可以设置允许提取的总最大数据量。
防止在目标文件夹外提取。
受控的RAM使用。使用缓冲区将数据写入临时文件。
处理包含多个同名文件的zip文件等。
兼容性
Plone 4.3.x
实现
ftw.zipextract.zipextracter.ZipExtracter 类处理从zip文件中提取。
ftw.zipextract.browser.zipextract_view.ZipExtractView 用于提取视图的渲染。它注册为zipextract,并将其应用于其上下文。
文件和文件夹的处理和创建取决于上下文和内容类型。为此,使用了4个接口
ftw.zipextract.interfaces.IFile 定义了一些文件处理方法,其中特别包括一个 is_zip 方法,用于判断是否可以在给定的文件上使用提取功能。
ftw.zipextract.interfaces.IFactoryTypeDecider 用于决定在特定容器中从 zip 文件创建文件夹或文件时使用哪种工厂类型信息。
定义了一个 get_file_fti 方法
定义了一个 get_folder_fti 方法
ftw.zipextract.interfaces.IFileCreator 定义了一个 create 方法来创建一个新的文件
ftw.zipextract.interfaces.IFolderCreator 定义了一个 create 方法来创建一个新的文件夹
将包适应到您的应用程序
为了将此包适配到其他应用,您可能需要为上述 4 个接口编写适配器。 ftw.zipextract 为所有 4 个接口提供了 Dexterity 类型和阿基特克(Archetypes)的默认实现。
安装
将此包添加到您的 buildout 配置中
[instance] eggs += ... ftw.zipextract
安装 ftw.zipextract 的通用设置配置文件。
开发
Fork 此仓库
克隆您的 Fork
Shell: ln -s development.cfg buildout.cfg
Shell: python bootstrap.py
Shell: bin/buildout
运行 bin/test 以测试您的更改。
或者通过运行 bin/instance fg 来启动一个实例。
链接
版权
此包由 4teamwork 版权所有。
ftw.zipextract 根据 GNU 通用公共许可证第 2 版授权。