2012-09-05 68 views
2

我对GAE和网页开发一般都很陌生,我正在尝试使用GAE BlobStore。我使用python似乎无法找到将大量文件上传到BlobStore的任何资源。将100万张图片上传到BlobStore

我已经阅读了一些资源和例子,但它们中没有一个似乎对这个特殊问题有帮助。

有没有人有关于此的任何资源或经验?

回答

3

在我的项目中,当从专用服务器移动到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()) 

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

这样的脚本可以通过find,curlxargs的组合编写在Python或甚至shell脚本中。

为了加速使用多个线程并在paralel中完成32个上传帮助。

为了健壮性,上传文件后,我们可以尝试下载并比较尺寸/ md5,并在出现问题时重新上传。

3

我们将根据您计划如何使用图片将图片上传到Google Storage,并使用gsutil从AppEngine应用程序访问它们。如果有可恢复的上传和multithreading更快的上传。

否则,您需要使用create_upload_url,并由于this错误而自行批量处理小于500个文件。