2のローカルへのアップロードでの認証のところ、下記のエラーで躓いたのでメモ。
Error 401: --- begin server output ---
You must be logged in as an administrator to access this.
1. リモートからデータを取得する
app.yamlに下記のコードを追加し、remote_apiが使えるようにする。
builtins:
- remote_api: on
追加してdeployしたら、terminalで下記のコードを実行して、欲しいエンティティのデータを取得する。
$ appcfg.py download_data --kind=<エンティティ> --url=http://<APPのID>.appspot.com/_ah/remote_api --filename=<エンティティ名でもなんでも>.dump
2. ローカルサーバへのデータのアップロード
ローカルへのアップロードは、GoogleのOAuthと関係ないので、このままアップロードすると、認証エラーになる。
そのためappengine_config.pyに下記のコードを追加して、ローカルの場合の認証を回避させる。
if os.environ.get('SERVER_SOFTWARE','').startswith('Development'):
remoteapi_CUSTOM_ENVIRONMENT_AUTHENTICATION = (
'REMOTE_ADDR', ['127.0.0.1'])
その後、ダウンロードしたファイルをローカルのデータストアにアップしてめでたくローカルへのコピーが完了する。
$ appcfg.py upload_data --url=http://127.0.0.1:8080/_ah/remote_api --application=`dev~<APPのID>` --filename=<1でダウンロードしたファイル名>.dump --num_threads=5
の前に、"dev~"を入れるの忘れずにね。ローカルだとIDに入るので。