我正在生成大小超过2 GB的ePub。
我首先创建zip文件,然后重命名为.epub
我正在使用zip64
zp = zipfile.ZipFile(zipFileName, "w", zipfile.ZIP_DEFLATED, allowZip64=True)
更多详情:http://stackoverflow.com/questions/37783643/allowzip64-true-will-work-for-small-size-files
然后我将ePub传递给ePub Checker,这会产生以下异常。
FATAL(PKG-008): ./NOID.epub/NOID.epub(-1,-1): Unable to read file 'invalid CEN header (bad signature)'.
这意味着epub无法通过ePub Checker
读取,因此不会从ePub中发出任何错误。
Java版本:
$ java -version
java version "1.7.0_101"
OpenJDK Runtime Environment (rhel-2.6.6.4.el6_8-x86_64 u101-b00)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
ePubcheck版本:
$ /opt/apache-tomcat-8.0.0/webapps/epubcheck4.0.1/epubcheck.jar
如果Zip即ePub文件大小小于2 GB,则此错误不会出现,但Zip即ePub文件大小超过2 GB,则此错误即将发生。
我哪里错了?