GCE で実行されるアプリケーションを作成しており、https: //code.google.com/p/google-api-go-client/ の google-api-go-client を使用して GCS にデータを保存しています。
GCEアプリケーションが通信するGAEアプリケーションも実行しています。
GCE アプリケーションをローカルで実行し、稼働中の GCS サーバーと通信してファイルを保存し、取得することができます。
現在、テスト環境を実行できるように、ファイルを GCS にローカルに保存しようとしています。
devappserver が blobstore を介した GCS のシミュレートをサポートしていることがわかります。ただし、GCE アプリケーションを GCS ストレージのローカル devappserver に向ける方法がわかりません。
GAE アプリケーションで「goapp serve」を介して devappserver を実行しています。
ベースパスを設定しようとしましたが、devappserver から 500 エラーが発生しました。
service, err := storage.New(httpClient)
service.BasePath = "http://localhost:8080/_ah/gcs/"
結果は
ERROR 2014-10-23 19:14:08,692 module.py:727] Request to '/_ah/gcs/b/default/o/6051711999279104' failed
Traceback (most recent call last):
File "/home/ben/go_appengine/google/appengine/tools/devappserver2/module.py", line 723, in _handle_request
return handler.handle(match, environ, wrapped_start_response)
File "/home/ben/go_appengine/google/appengine/tools/devappserver2/wsgi_handler.py", line 59, in handle
return self._wsgi_app(environ, start_response)
File "/home/ben/go_appengine/google/appengine/tools/devappserver2/gcs_server.py", line 56, in __call__
status_message = httplib.responses.get(e.args[1], '')
IndexError: tuple index out of range
INFO 2014-10-23 19:14:08,693 module.py:652] default: "GET /_ah/gcs/b/default/o/6051711999279104?alt=json HTTP/1.1" 500 -
ブラウザでこの URL にアクセスできます
http://localhost:8080/_ah/gcs/bucket
XML の結果を取得します。
<ListBucketResult xmlns="http://doc.s3.amazonaws.com/2006-03-01">
<IsTruncated>False</IsTruncated>
</ListBucketResult>
GCS をローカルで使用することに関する投稿をいくつか見ましたが、正しく動作していないようです。ここで私が間違っていることはありますか?または、devappserver は GCS をサポートしていませんか、それともサポートしていない json API だけですか?