1

我正在尝试将使用 filepicker.io 存储在 S3 中的大文件(50MB-2GB)发送到 Google App Engine Blobstore(在 Python 中)。我希望在不通过客户端浏览器上的表单的情况下发生这种情况,因为它不符合项目要求(并且经常挂起非常大的文件)。

我尝试了多种解决方案,包括:

  • 尝试使用 urlfetch 将文件加载到 GAE(但GAE对请求/响应有 32MB 的限制)
  • 在python中构建一个多部分表单并将其发送到blobstore.create_upload_url()(无法通过url传输文件,并且由于32MB限制而无法在脚本中加载它)
  • 使用boto 将文件直接读取到 blobstore 中(连接超时,并且从 boto 显示的日志从 GAEencountered HTTPException exception触发CancelledError: The API call logservice.Flush() was explicitly cancelled.,导致进程崩溃。

我正在努力寻找可行的解决方案。任何关于我如何执行此传输的提示,或如何将 s3 中的文件作为表单附件传递而不首先将其加载到 python 中(即仅指定其 url)将不胜感激。

4

1 回答 1

1

BlobstoreUploadHandler 不受 32MB 限制:https ://developers.google.com/appengine/docs/python/tools/webapp/blobstorehandlers 。但是,我不确定这如何适合您的应用程序。如果您可以将文件发布到由 BlobstoreUploadHandler 处理的端点,那么您应该很高兴。

于 2013-04-12T14:11:00.327 回答