我正在尝试此链接中的示例代码,并尝试使用 Go runtime 中的 Google Cloud Storage Client App 在 Google Cloud Storage 上执行操作,但示例代码中的以下部分给出了错误“无法使用 c(类型“appengine”.Context ) 作为函数参数中的 context.Context 类型: “appengine”.Context 没有实现 context.Context(缺少 Deadline 方法)”c := appengine.NewContext(r)hc := &http.Client{ Transport: &oauth2.Transport{ Source: google.AppEngineTokenSource(c, storage.ScopeFullControl), Base: &urlfetch.Transport{Context: c}, },}这里有什么问题??我该如何解决这个问题??
2 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
该错误消息明确指出您尝试传递一个类型appengine.Context为预期类型的值context.Context。
该google.AppEngineTokenSource()函数需要一个 type 值,context.Context而不是您传递的值(类型为appengine.Context)。
您可以Context使用以下功能创建此类:
cloud.NewContext(projID string, c *http.Client)
这就是我将如何做到的:
c := appengine.NewContext(r)
hc := &http.Client{}
ctx := cloud.NewContext(appengine.AppID(c), hc)
hc.Transport = &oauth2.Transport{
Source: google.AppEngineTokenSource(ctx, storage.ScopeFullControl),
Base: &urlfetch.Transport{Context: c},
}
- 2 回答
- 0 关注
- 184 浏览
添加回答
举报
0/150
提交
取消