我正在编写一个将在GCE上运行的应用程序,并使用来自https://code.google.com/p/google-api-go-client/的google客户机将数据存储在GCS中。
我还有一个GAE应用程序正在运行,GCE应用程序与之通信。
我可以在本地运行我的GCE应用程序,并与活动的GCS服务器进行通信,并存储和检索文件。
现在我正在尝试在GCS中本地存储文件,这样我就可以运行一个测试环境。
我看到devappserver支持通过blobstore模拟GCS。但是,我似乎不知道如何将我的GCE应用程序指向GCS存储的本地devappserver。
我正在运行一个devappserver通过我的GAE应用程序'goapp服务‘。
我已经尝试过设置basepath,这会导致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的帖子,但我似乎无法正确地使用GCS。我在这里做错什么了吗?还是devappserver不支持GCS,或者可能只是它不支持的json?
发布于 2014-10-23 20:44:18
我想确保我们清楚区分"Google客户端库for Go",这是一个通用的用于Go的Google API客户端,可用于访问,以及API的“客户端”(),这是一个特定于希望使用Google云存储的应用程序引擎用户的客户库。
有两个: JSON和XML。通用Google客户端库与JSON兼容。API客户端使用XML。
App客户端libary完全支持本地操作。这是通过提供的本地实现来实现的,客户机库使用该实现。不幸的是,只有XML在本地存在,因此只有App客户端库在本地工作。将另一个客户端指向它将失败,因为XML不理解传入的JSON请求。
您的两个最佳选择是执行以下操作之一:
https://stackoverflow.com/questions/26536104
复制相似问题