猿问

使用 Go Runtime Google App Engine 的 Google Cloud

我正在尝试此链接中的示例代码,并尝试使用 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},

    },

}

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


慕桂英3389331
浏览 185回答 2
2回答

慕桂英546537

该错误消息明确指出您尝试传递一个类型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},}
随时随地看视频慕课网APP

相关分类

Go
我要回答