我对GAE和网页开发一般都很陌生,我正在尝试使用GAE BlobStore。我使用python似乎无法找到将大量文件上传到BlobStore的任何资源。将100万张图片上传到BlobStore
我已经阅读了一些资源和例子,但它们中没有一个似乎对这个特殊问题有帮助。
有没有人有关于此的任何资源或经验?
我对GAE和网页开发一般都很陌生,我正在尝试使用GAE BlobStore。我使用python似乎无法找到将大量文件上传到BlobStore的任何资源。将100万张图片上传到BlobStore
我已经阅读了一些资源和例子,但它们中没有一个似乎对这个特殊问题有帮助。
有没有人有关于此的任何资源或经验?
在我的项目中,当从专用服务器移动到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
,curl
和xargs
的组合编写在Python或甚至shell脚本中。
为了加速使用多个线程并在paralel中完成32个上传帮助。
为了健壮性,上传文件后,我们可以尝试下载并比较尺寸/ md5,并在出现问题时重新上传。
我们将根据您计划如何使用图片将图片上传到Google Storage,并使用gsutil从AppEngine应用程序访问它们。如果有可恢复的上传和multithreading更快的上传。
否则,您需要使用create_upload_url,并由于this错误而自行批量处理小于500个文件。