Google App Engine - 如何将大型文件从数据存储区传输到blobstore?

时间:2012-08-10 01:52:28

标签: google-app-engine google-cloud-datastore

我在常规云存储中有一堆大文件,我想以编程方式移动到blobstore,以便使用mapreduce库进行进一步处理。 (因为有一个BlobstoreLineInputReader而不是数据存储版本。)我已经尝试为gs文件创建一个url并让blobstore尝试自己读取它,我也尝试过缓冲读取,但对于大文件我还是打了一个记忆错误。 (我通过在附加模式下打开并在结束时最终确定blobstore文件的截止日期超过错误(超过60秒)。)似乎应该有一种有效的方法来执行此操作,因为数据存储区和blobstore都是相同的应用程序上下文,但我还没有找到它。

1 个答案:

答案 0 :(得分:4)

我很困惑,因为你在这里几乎可以互换地提到云存储和数据存储。

如果您的数据位于Google云端存储中,则可以为这些文件创建BlobKeys,并将其与任何当前的Blobstore API一起使用。

即。

blobkey = blobstore.create_gs_key('/gs/my_bucket/my_object').

如果您的文件位于数据存储区中,那么您需要使用文件API将它们移动到Cloud Storage / Blobstore,然后从那里处理它们。