谷歌云存储对象版本控制是否与appengine云存储客户端库兼容



我希望将用户生成的数据(用户配置文件,可能会不时更改)从我的AppEngine python应用程序备份到谷歌云存储中。我可以很容易地定期强力备份所有用户生成的数据,但只更新已更改的数据可能更有意义(如果用户更改了数据,则只将其写入云存储)。稍后,在需要恢复数据的情况下,我想利用云存储服务的对象版本控制功能来确定需要恢复哪些对象。

我正试图根据cloudstorage.open()的相关信息来准确理解谷歌云存储是如何与AppEngine交互的https://developers.google.com/appengine/docs/python/googlecloudstorageclient/functions.然而,没有迹象表明该服务如何与存储在云中的版本的对象交互(版本的对象在此处记录:https://developers.google.com/storage/docs/object-versioning)。

所以,我的问题是:在AppEngine上运行的应用程序如何访问存储在谷歌云存储中的特定版本的对象。

如果有更好的方法,我也很想听听。

AppEngine GCS客户端库目前不支持版本控制。如果您通过其他渠道对存储桶启用版本控制,GCS客户端库将保持正常工作,但为了访问或删除旧代对象,您需要使用XML API或JSON API(而不是特定于应用程序的API)。JSON API的Python客户端在appengine中运行良好,但使用它会丢失appengine的一些细节。请参阅https://developers.google.com/appengine/docs/python/googlecloudstorageclient/#gcs_rest_api了解更多详细信息。

以下是关于如何使用XML和JSON API的版本控制的一些信息:https://developers.google.com/storage/docs/generations-preconditions

最新更新