我正在尝试通过我的Python Flask应用程序(Python 3)创建数据存储到云存储的定时备份。我很满意它的日程安排方面,但我有困难的出口。
我使用https://cloud.google.com/datastore/docs/schedule-export作为起点,但它引用了
from google.appengine.api import urlfetch它不再受支持。我一直在调查urllib
import urllib.request
url = 'https://datastore.googleapis.com/v1/projects/application-name-placeholder'
timestamp = datetime.datetime.now().strftime('%Y%m%d-%H%M%S')
output_url_prefix = 'gs://datastore-backup-test-name-placeholder/example'
query = client.query(kind='__kind__')
query.keys_only()
kinds = [entity.key.id_or_name for entity in query.fetch()]
query = client.query(kind='__namespace__')
query.keys_only()
all_namespaces = [entity.key.id_or_name for entity in query.fetch()]
entity_filter = {
'kinds': kinds,
'namespace_ids': all_namespaces
}
request = {
'project_id': 'application-name-placeholder',
'output_url_prefix': output_url_prefix,
'entity_filter': entity_filter
}
headers = {
'Content-Type': 'application/json'
}
response = urllib.request.Request(url)
response.add_header('Content-type', 'application/json')
result = urllib.request.urlopen(response, data=bytes(json.dumps(request), encoding="utf-8"))在那一刻我得到了
urllib.error.HTTPError: HTTP Error 404: Not Found我不确定我的数据存储的url是否是正确的方法,但我认为我的方法还有其他问题。如果能提供一些指导,我们将不胜感激。
发布于 2019-04-18 00:30:54
您的URL中有url,但链接的文档中的url= 'https://datastore.googleapis.com/v1/projects/%s:export' % app_id。您遗漏了尾部:export。
假设您正在尝试导出整个数据库,则应该删除实体筛选器。如果没有实体筛选器,则托管导出将导出整个数据库。
https://stackoverflow.com/questions/55726058
复制相似问题