簡體   English   中英

Blobstore備份策略Google App Engine Python

[英]Blobstore Backup Strategy Google App Engine Python

我正在尋找一種方法來備份Google App Engine上的blobstore,以便從意外刪除中恢復。 我希望能夠同時備份數據存儲區和blobstore,這樣我就可以恢復整個系統。

我嘗試過的一件事是為我的blob使用Google Cloud Storage,然后制作存儲桶的備份副本。 但是,如果我刪除blobstore查看器中的文件(也會在谷歌雲存儲中刪除它),然后使用gsutil從存儲桶備份還原文件,則blobinfo仍然會丟失。

我相信我必須在我的數據存儲區中存儲所有文件路徑(谷歌雲存儲路徑),然后在還原期間,使用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 Cloud Storage中的相關blob本身。 我們也不備份與這些blob關聯的數據存儲BlobInfo實體。

請注意,您還可以定期安排這些備份

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM