【问题标题】:uploading 1 million images to BlobStore将 100 万张图片上传到 BlobStore
【发布时间】:2012-09-05 02:03:54
【问题描述】:

总的来说,我对 GAE 和 Web 开发还很陌生,我正在尝试使用 GAE BlobStore。我正在使用 python 似乎无法找到将大量文件上传到 BlobStore 的任何资源。

我已经阅读了许多资源和示例,但似乎没有一个对这个特定问题有帮助。

有人有这方面的资源或经验吗?

【问题讨论】:

    标签: google-app-engine blobstore


    【解决方案1】:

    从专用服务器迁移到 appengine 时,我的项目中有类似的要求。 我们不必移动 100 万,但大约是 100000。

    花了一些时间,但最后完成了。

    这是使用非常简单的解决方案完成的。刚刚创建了一个文件上传服务,就像例子on blogstore docs一样。

    class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
      def get(self):
        upload_url = blobstore.create_upload_url('/upload')
        self.response.write(upload_url)
    
      def post(self):
        upload_files = self.get_uploads('file')
        blob_info = upload_files[0]
        self.response.write(blob_info.key())
    

    然后使用上传脚本从 localhost 上传文件。

    通过findcurlxargs的组合,可以用python甚至shell脚本编写这样的脚本。

    为了加速使用多个线程和并行上传 32 次帮助。

    为了稳健性,上传文件后,我们可以尝试下载并比较sizes/md5,如果有问题重新上传。

    【讨论】:

      【解决方案2】:

      我们将根据您计划如何使用这些图像,您可以将它们上传到 Google 存储并使用 gsutil 从您的 AppEngine 应用程序访问它们。如果有可恢复的上传,multithreading 可以加快上传速度。

      否则,由于this 错误,您需要使用create_upload_url 并自己进行批处理,一次批处理少于 500 个文件。

      【讨论】:

        猜你喜欢
        • 2020-11-11
        • 2011-08-05
        • 2020-07-06
        • 2014-06-27
        • 1970-01-01
        • 2015-02-07
        • 2020-12-05
        • 2020-09-20
        • 2020-06-24
        相关资源
        最近更新 更多