我正在寻找一种方法来备份Google App Engine上的blobstore,以便从意外删除中恢复 . 我希望能够同时备份数据存储区和blobstore,这样我就可以恢复整个系统 .
我尝试过的一件事是为我的blob使用Google Cloud Storage,然后制作存储桶的备份副本 . 但是,如果我删除blobstore查看器中的文件(也会在谷歌 Cloud 存储中删除它),然后使用gsutil从存储桶备份还原文件,则blobinfo仍然会丢失 .
我相信我必须在我的数据存储区中存储所有文件路径(谷歌 Cloud 存储路径),然后在还原期间,使用create_gs_key()为所有这些文件重新创建blob键 . 信息存储在blobviewer中(文件名,内容类型,大小等)是否存储在数据存储区中?
无论如何备份/恢复blobstore数据而不重新生成密钥?
2 回答
请查看Google Cloud Storage的object versioning功能 . 在存储桶上启用版本控制,当您删除对象时,它将被存档 . 稍后您可以选择恢复或永久删除存档版本:
创建一个对象:
然后归档它:
现在它无法进入:
但是,您仍然可以明确请求存档版本:
在删除存档版本之前:
当然......这并不能保护您不会意外删除存档版本 .
您可以尝试使用datastoreadmin backup and restore .
它将使用blob密钥完整备份数据存储区实体 . 根据以下内容,您仍然需要单独备份blob,就像您已经在做的那样 .
请注意,您也可以定期schedule these backups .