Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python GAE:计划从第三方站点导入大gzip文件_Python_Google App Engine - Fatal编程技术网

Python GAE:计划从第三方站点导入大gzip文件

Python GAE:计划从第三方站点导入大gzip文件,python,google-app-engine,Python,Google App Engine,我正在开发一个Python web应用程序,它需要定期从第三方网站导入大的(按照GAE限制)Gzip文件。想想rdf exports,DMOZ项目定期生产 这意味着每天获取一个500+MB的gzip文件,对其进行压缩、解析、处理,并将结果存储在GAE的数据存储中供以后使用 考虑到最大下载、处理时间等的限制,在GAE上实现此功能的正确方法是什么?我最初的直觉反应(不知道gzip文件中有什么内容)是在其他地方(AWS?)进行处理然后将处理后的数据以较小的位数推送到GAE应用程序。应用程序引擎中的下载

我正在开发一个Python web应用程序,它需要定期从第三方网站导入大的(按照GAE限制)Gzip文件。想想rdf exports,DMOZ项目定期生产

这意味着每天获取一个500+MB的gzip文件,对其进行压缩、解析、处理,并将结果存储在GAE的数据存储中供以后使用


考虑到最大下载、处理时间等的限制,在GAE上实现此功能的正确方法是什么?

我最初的直觉反应(不知道gzip文件中有什么内容)是在其他地方(AWS?)进行处理然后将处理后的数据以较小的位数推送到GAE应用程序。

应用程序引擎中的下载文件大小限制当前为64MB。因此,您有两个选择:

  • 使用HTTP范围标头下载并分块处理文件
  • 使用外部服务进行下载,将其分成若干部分,然后将这些部分发送到您的应用程序引擎应用程序

是的,我考虑过这个解决方案,但我尽量避免系统管理。否则,我可以很容易地在更传统的云平台(如AWS)上构建我的整个应用程序。IMHO GAE比AWS好。但是AWS比GAE+AWS要好:)不幸的是,您不能分块解析gzip。它有一个标头,你不能在流中间开始读它。与bzip2形成对比的是,bzip2是面向块的。谁说过要分块阅读?你可以把它当作一条小溪来读;每次用完时,只需在缓冲区中提取更多数据。让我看看是否理解。您的建议基本上是安排一个cron作业,该作业将创建一个任务,该任务必须以流的形式逐块下载gz文件(chunksize