就我所知,对于用户上传的文件,CloudStorageTools :: createUploadUrl()必须将文件上传到
PHP GAE环境,从而导致gs存储桶中的文件(gs:// [name] / [id]).
文件上传作为魅力,但解压缩上传的文件会带来一些问题.
我尝试了3种方法,但似乎没有一种方法适合我:
>支持PHP zip函数(http://www.php.net/manual/en/ref.zip.php),但在gs存储桶路径上使用zip_open不起作用(检查fopen命令导致工作文件指针:资源ID#120)
> ZipArchive(http://nl1.php.net/manual/en/book.zip.php).不幸的是,ZipArchive库在GAE上还没有(但是?)支持.必须编译.
> PclZip(http://www.phpconcept.net/pclzip)给了我一个有效的求助句柄(支持zlib),但我遇到了这个问题(fseek经常是0):https://code.google.com/p/googleappengine/issues/detail?id=10881
有没有人知道如何将大型zip文件上传到GAE(PHP),解压缩并使用它们?
我几乎要求用户自己解压缩,单独上传提取的文件并绕过整个解压缩过程.
最佳答案 我知道它已经有一段时间了,但我也尝试过上面的方法而且它们没有用.我跟GAE擦肩而过,然后找到了
TbsZip.
通过它我可以上传ODT(具有zip格式),提取文件,修改它,然后将其重新填充到原始zip的副本中并将其发送回用户.尚未对其进行广泛测试,但在谷歌修复GAE之前,似乎确实是一个合理的解决方法.
API类似于ZipArchive.我正在使用当前的GAE SDK(1.9.15).
希望这可以帮助!