python - 无法使用 SSZipArchive 在 iOS9 中解压缩大型 zip 文件 (3.3GB)

标签 python ios zip unzip python-zipfile

如标题所示,我使用 python zipfile 模块从我的 Django 后端服务器(托管在 Ubuntu 14.04.1 LTS 上)创建了 zip 文件:

zipfile.ZipFile(dest_path, mode='w', compression=zipfile.ZIP_DEFLATED, 
                allowZip64=True)

我设法在 Finder 中使用我的 Mac 打开它,但使用 SSZipArchive 没有成功图书馆。我已经尝试使用 master 分支的最新提交并标记 v1.0.1 和 v0.4.0。

使用 v0.4.0,我在 unzip.c 的第 1506 行出现错误:

    if (unz64local_CheckCurrentFileCoherencyHeader(s,
                                                   &iSizeVar, 
                                                   &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK)
        return UNZ_BADZIPFILE;

并且每次都使用相同的 currentFileNumber 解压缩同一个文件。

有没有人得到任何线索?

附言我认为 SSZipArchive 应该支持 Zip64 存档文件,因为我已经问过 question在他们的 github 仓库上。

更新 [20160129] 我对 zip 文件执行了 zipinfo 检查并得到以下输出:

...
-rw-r--r--  2.0 unx     1992 b- defN 26-Nov-15 14:59 <file_name>
-rw-r--r--  2.0 unx      925 b- defN 26-Nov-15 14:59 <file_name>
-rw-r--r--  2.0 unx     1194 b- defN 26-Nov-15 14:59 <file_name>
-rw-r--r--  2.0 unx       72 b- defN 26-Nov-15 14:52 <file_name>
-rw-r--r--  2.0 unx      289 b- defN 18-Jan-16 11:27 <file_name>
-rw-r--r--  2.0 unx     1541 b- defN 18-Jan-16 11:27 <file_name>
-rw-r--r--  2.0 unx      295 b- defN 18-Jan-16 11:27 <file_name>
-rw-r--r--  2.0 unx 449619181 b- defN 18-Jan-16 11:26 <file_name>
-rw-r--r--  4.5 unx 73128184 bx defN 18-Jan-16 11:26 <file_name>
-rw-r--r--  4.5 unx 69444488 bx defN 18-Jan-16 11:26 <file_name>
-rw-r--r--  4.5 unx   671440 bx defN 18-Jan-16 11:26 <file_name>
-rw-r--r--  4.5 unx 20189549 bx defN 18-Jan-16 11:27 <file_name>
-rw-r--r--  4.5 unx      197 bx defN 18-Jan-16 11:26 <file_name>
-rw-r--r--  4.5 unx  1379396 bx defN 18-Jan-16 11:26 <file_name>
...

最佳答案

试错了十几次,发现是python zipfile包生成的zip文件有问题。如果我使用版本的Ubuntu服务器提供的zip命令

Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.

This is Zip 3.0 (July 5th 2008), by Info-ZIP.

对于4GB的大数据,SSZipArchive可以成功解压zip包。

我用 zipinfo 测试了 zip 文件,发现:

...
-rw-r--r--  3.0 unx     2939 bx     2677 defN 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx    15069 bx     3040 defN 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx     3265 bx     3003 defN 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx     3048 bx     2766 defN 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx     3453 bx     3168 defN 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx     1415 tx      534 defN 16-Jan-28 16:33 <file_name>
drwxr-xr-x  3.0 unx        0 bx        0 stor 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx     3302 tx      695 defN 16-Jan-28 16:33 <file_name>
drwxr-xr-x  3.0 unx        0 bx        0 stor 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx   130678 bx   127322 defN 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx   133540 bx   130045 defN 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx      136 tx       71 defN 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx     1416 tx      541 defN 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx     1417 tx      541 defN 16-Jan-28 16:33 <file_name>
-rw-r--r--  3.0 unx     2766 tx      652 defN 16-Jan-28 16:33 <file_name>
5551 files, 3854751563 bytes uncompressed, 3793408959 bytes compressed:  1.6%

关于python - 无法使用 SSZipArchive 在 iOS9 中解压缩大型 zip 文件 (3.3GB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35032704/

相关文章:

amazon-s3 - 如何将 zip 文件(包含 shp)从 s3 存储桶加载到 Geopandas?

python - 计算csv文件中出现在python同一行中的相同单词的出现次数

c++ - 如何导出 std::vector

ios - WKWebView:无法更改字体大小

ios - 第二次分配属性时是否立即释放对象?

powershell - 如何使用 PowerShell 将多个文件压缩为一个 zip 文件?

python - 使用 7zip 和 python 在给定路径中创建受密码保护的文件

Python什么都不打印?

ios - 如何定义布局约束以使一个标签保持其内容的宽度并允许另一个标签填充剩余空间?

Java Zip 文件提取