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

Nic*_*ina 7 python google-app-engine google-cloud-storage

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

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

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

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

Eze*_*uns 2

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

我的方法是使用 进行批量迁移cron.yaml,跟踪迁移了哪些文件,以便您可以以不同的方式提供它们(根据此页面)。云存储在创建对象后为您提供 md5 哈希值,您可以使用该哈希值在删除 Blobstore 副本之前验证每个文件的迁移是否没有错误(可以在文件迁移过程中传输时计算类似的哈希值) )。

至于图书馆:

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