Я пытаюсь создать запланированное резервное копирование хранилища данных через мое приложение 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 для хранилища данных - правильный подход, но думаю, что есть другие проблемы с моим подходом,Некоторое руководство будет оценено.