如何将AppEngine云存储备份加载到本地开发服务器?

时间:2012-09-09 15:41:49

标签: python google-app-engine

我正在试验应用程序的Google云存储备份功能。

使用gsutil下载备份文件后,如何将它们加载到本地开发服务器?

是否有可用于这些格式的解析器(例如,协议缓冲区)?

3 个答案:

答案 0 :(得分:7)

备份存储在leveldb record format中,您应该可以使用以下内容阅读:

答案 1 :(得分:7)

Greg Bayer编写了一些Python代码,展示了如何在blog post中执行此操作:

# Make sure App Engine SDK is available
import sys
sys.path.append('/usr/local/google_appengine')
from google.appengine.api.files import records
from google.appengine.datastore import entity_pb
from google.appengine.api import datastore

raw = open('path_to_datastore_export_file', 'r')
reader = records.RecordsReader(raw)
for record in reader:
  entity_proto = entity_pb.EntityProto(contents=record)
  entity = datastore.Entity.FromPb(entity_proto)
  #Entity is available as a dictionary!

答案 2 :(得分:0)

对于那些使用Windows的人,将开放行更改为: raw = open('path_to_datastore_export_file','rb')

必须以二进制模式打开文件!