首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在本地devappserver上使用google-api-go-client

在本地devappserver上使用google-api-go-client
EN

Stack Overflow用户
提问于 2014-10-23 19:41:18
回答 1查看 258关注 0票数 1

我正在编写一个将在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个错误。

代码语言:javascript
复制
service, err := storage.New(httpClient)
service.BasePath = "http://localhost:8080/_ah/gcs/"

结果:

代码语言:javascript
复制
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

代码语言:javascript
复制
http://localhost:8080/_ah/gcs/bucket

并获得一个XML结果:

代码语言:javascript
复制
<ListBucketResult xmlns="http://doc.s3.amazonaws.com/2006-03-01">
    <IsTruncated>False</IsTruncated>
</ListBucketResult>

我见过一些关于在本地使用GCS的帖子,但我似乎无法正确地使用GCS。我在这里做错什么了吗?还是devappserver不支持GCS,或者可能只是它不支持的json?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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请求。

您的两个最佳选择是执行以下操作之一:

  1. 使用应用程序引擎的Google云存储Go客户端库。下载说明是这里
  2. 与其使用本地实现,不如使用带有测试桶的真正的。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26536104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档