Google Cloud Storage Client App 使用 Go Runtime Google App Eng



>我正在尝试此链接中的示例代码并尝试对Google Cloud Storage 使用 Google Cloud Storage Client App 来自 Go 运行时,但示例代码中的以下部分给出了错误"无法使用 c(键入 "appengine"。上下文)作为类型上下文。函数参数中的上下文:"appengine"。上下文不实现上下文。上下文(缺少截止日期方法)"

c := appengine.NewContext(r)
hc := &http.Client{
    Transport: &oauth2.Transport{
        Source: google.AppEngineTokenSource(c, storage.ScopeFullControl),
        Base:   &urlfetch.Transport{Context: c},
    },
}

这里有什么问题??我该如何解决这个问题?

错误消息明确指出您尝试传递类型为 appengine.Context 的值,其中预期类型为 context.Context

google.AppEngineTokenSource()函数需要 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},
}
您需要

appengine更新到google.golang.org/appengine,如下所述:https://github.com/golang/oauth2/#app-engine

最新更新