3 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
做這個(gè):
func getCloudContext(appengineContext context.Context) context.Context {
hc := &http.Client{
Transport: &oauth2.Transport{
Source: google.AppEngineTokenSource(appengineContext, storage.ScopeFullControl),
Base: &urlfetch.Transport{Context: appengineContext},
},
}
return cloud.NewContext(appengine.AppID(appengineContext), hc)
}
或者,如果通過開發(fā)服務(wù)器傳遞憑據(jù)不起作用,您也可以使用顯式憑據(jù):
func getCloudContext(aeCtx context.Context) (context.Context, error) {
data, err := ioutil.ReadFile("/path/to/credentials.json")
if err != nil {
return nil, err
}
conf, err := google.JWTConfigFromJSON(
data,
storage.ScopeFullControl,
)
if err != nil {
return nil, err
}
tokenSource := conf.TokenSource(aeCtx)
hc := &http.Client{
Transport: &oauth2.Transport{
Source: tokenSource,
Base: &urlfetch.Transport{Context: aeCtx},
},
}
return cloud.NewContext(appengine.AppID(aeCtx), hc), nil
}
- 3 回答
- 0 關(guān)注
- 187 瀏覽
添加回答
舉報(bào)