我应该如何将blob从BlobStore移动到Google云端存储?

时间:2014-01-10 19:11:39

标签: python google-app-engine google-cloud-storage

我们的应用程序已使用Blobstore在App Engine上运行多年。我们希望将视频文件移至Google云端存储。将大Blob从Blobstore迁移到GCS的最佳实践是什么?

是否只是使用BlobReader并一次向GCS写入一个字节?或者还有其他快捷方式/工具吗?

至于从App Engine写入GCS,不乏可供选择的库:

任何理由使用一个而不是另一个?

1 个答案:

答案 0 :(得分:2)

我没有必要这样做,但我会说没有自动迁移工具。所以,是的,你必须自己动手。

我的方法是使用cron.yaml批量迁移,跟踪迁移的文件,以便您可以以不同方式提供服务(根据this page)。创建对象后,云存储会为您提供md5哈希,您可以使用该哈希在删除Blobstore副本之前验证每个文件的迁移是否无错误(可以在迁移时传输文件时计算类似的哈希值) )。

至于图书馆:

  • Google云端存储客户端库使用可恢复的上传功能来“流式传输”文件,这将使内存更顺畅。我发现它非常可靠(与已弃用的Google云端存储API /文件API相反)。
  • JSON API客户端是较低级别。
  • boto未针对GAE使用进行优化,而是针对桌面进行优化,您不希望离开Goog​​le Cloud进行迁移($$$)。
  • 据我所知,Blobstore允许您从GCS提供文件,并让用户将文件上传到GCS,但不能从您的应用程序本身中写入文件。