【问题标题】:App Engine Blobstore download all blobs at onceApp Engine Blobstore 一次下载所有 Blob
【发布时间】:2012-01-24 01:42:00
【问题描述】:

我想将所有 blob 作为单个压缩文件(或其他方式)下载到我的计算机上。无论如何要这样做?我使用 python SDK。

【问题讨论】:

  • 如果我有 1000 个大的(每个约 20MB)blob,BlobReader 类将如何帮助我下载所有这些。当然不可能把它们中的一些放在内存中,那么你的建议是什么?
  • 你想优化什么?总下载时间?
  • 主要是下载时间然后是CPU,你有什么想法吗?

标签: python google-app-engine blobstore


【解决方案1】:

不,没有办法做到这一点。 Blobstore 可以任意大,远远大于在单个文件中实际下载的大小。

【讨论】:

    【解决方案2】:

    对于发送到 GAE 的每个 Web 请求,request deadline 的时间为 60 秒。 One request 的响应不能超过 32 兆,其处理程序通常也不能使用默认配额使用超过 128 兆的内存。

    假设您有一个非常小的应用程序,也许您可以在内存中组装所有 blob 的 zip。但这不会是可扩展的,如果你的 blostore 还是那么小,值得吗? (不,不是)。

    底线是,GAE 中很少会一次性完成。您在多个请求中迭代地执行操作。

    【讨论】:

    • 响应大小限制为 32meg 可以解决整个问题。
    【解决方案3】:

    无论如何,最好一次下载一个。这样,如果您的工作在中途终止,您可以从失败的地方重新开始,而不是从头开始。

    【讨论】:

      【解决方案4】:

      如何将 blob 复制到谷歌存储,然后使用 gsutil 从那里下载 blob?

      【讨论】:

        猜你喜欢
        • 2018-01-12
        • 2012-05-02
        • 2011-11-11
        • 2011-09-28
        • 1970-01-01
        • 2013-09-23
        • 2013-12-25
        • 2013-09-23
        • 2013-05-11
        相关资源
        最近更新 更多