2

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

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

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

4

2 回答 2

3

我们将根据您计划使用图像的方式将它们上传到 Google 存储并使用gsutil从您的 AppEngine 应用程序访问它们。如果具有可恢复上传和多线程以加快上传速度。

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

于 2012-09-05T04:11:19.523 回答
3

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

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

这是使用非常简单的解决方案完成的。刚刚创建了一个文件上传服务,就像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())

然后使用上传脚本从本地主机上传文件。

这样的脚本可以用 python 编写,甚至可以用 shell 脚本编写,通过组合find,curlxargs.

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

For robustness, after uploading a file, we can try to download it and compare the sizes/md5, and re-uploading if something went wrong.

于 2012-09-05T11:17:40.197 回答