Blobstore备份策略Google App Engine Python

我正在寻找一种方法来备份Google App Engine上的blobstore以从意外删除中恢复。 我希望能够同时对数据存储和blobstore进行备份,以便我可以恢复整个系统。

我尝试过的一件事是使用Google Cloud Storage作为我的blob,然后制作存储桶的备份副本。 但是,如果我在blobstore查看器中删除文件(也会在谷歌云存储中删除它),然后使用gsutil从存储桶备份恢复文件,则blobinfo仍会丢失。

我相信我必须将所有文件路径(Google云存储路径)存储在我的数据存储中,然后在还原期间,使用create_gs_key()为所有这些文件重新创建blob密钥。 信息是否存储在数据存储区中的blobviewer(文件名,内容类型,大小等)?

无论如何不用重新生成密钥来备份/恢复blobstore数据?


看看Google Cloud Storage的对象版本控制功能。 在存储桶上启用版本控制,并在删除对象时将其归档。 稍后,您可以选择恢复或永久删除存档版本:

创建一个对象:

>>> PUT /bucket/obj

<<< HTTP/1.1 200 OK
<<< x-goog-generation: 12345

然后将其归档:

>>> DELETE /bucket/obj

<<< HTTP/1.1 200 OK

现在无法访问:

>>> GET /bucket/obj

<<< HTTP/1.1 404 NOT FOUND

但是,您仍然可以明确请求存档版本:

>>> GET /bucket/obj?generation=12345

<<< HTTP/1.1 200 OK

在删除存档版本之前:

>>> DELETE /bucket/obj?generation=12345

<<< HTTP/1.1 200 OK

当然...这不会保护您不小心删除存档版本。


您可以尝试使用datastoreadmin备份和恢复。

它将完整保留blob密钥来备份数据存储实体。 根据以下内容,您仍然需要分别备份blob,就像您已经在做的那样。

注意:虽然我们备份类型为BlobKey和Blob的数据存储实体属性,但我们不会备份存储在Blobstore或Google云端存储中的相关Blob。 我们也不备份与这些blob相关的数据存储BlobInfo实体。

请注意,您也可以定期安排这些备份。

链接地址: http://www.djcxy.com/p/67461.html

上一篇: Blobstore Backup Strategy Google App Engine Python

下一篇: Deleted entities keep returning using datastore admin