英文:
Google Cloud Storage: Error 401: Invalid Credentials
问题
我尝试使用goapp serve
和dev_appserver.py --default_gcs_bucket_name xxx.appspot.com .
运行开发服务器,但在调用wc.Close()
之后总是出现相同的错误。
有什么想法吗?
// 测试文件
b,err:= ioutil.ReadFile(“./files/me.jpg”)
如果err!= nil {
返回err
}
bucketName,err:= file.DefaultBucketName(c)
如果err!= nil {
返回err
}
client,err:= storage.NewClient(c)
如果err!= nil {
返回err
}
defer client.Close()
bucket:= client.Bucket(bucketName)
wc:= bucket.Object(“me.jpg”)。NewWriter(c)
如果_,err = wc.Write(b); err!= nil {
返回err
}
如果err = wc.Close(); err!= nil {
log.Errorf(c,“关闭文件失败”,err)
返回err
}
英文:
I have tried running the dev server with goapp serve
and dev_appserver.py --default_gcs_bucket_name xxx.appspot.com .
, but I always get the same error after calling wc.Close()
.
Any ideas?
// test file
b, err := ioutil.ReadFile("./files/me.jpg")
if err != nil {
return err
}
bucketName, err := file.DefaultBucketName(c)
if err != nil {
return err
}
client, err := storage.NewClient(c)
if err != nil {
return err
}
defer client.Close()
bucket := client.Bucket(bucketName)
wc := bucket.Object("me.jpg").NewWriter(c)
if _, err = wc.Write(b); err != nil {
return err
}
if err = wc.Close(); err != nil {
log.Errorf(c, "Failed to close file", err)
return err
}
答案1
得分: 1
我遇到了相同的错误,最终通过以下两个简单的步骤成功解决了问题:
-
使用我的凭据对我的应用程序进行身份验证,以便能够对其进行写入操作。
$ gcloud auth application-default login -
使用开发存储桶名称运行 dev_appserver:
$ dev_appserver.py app --default_gcs_bucket_name [MY_DEV_BUCKET_NAME]将 MY_DEV_BUCKET_NAME 替换为您实际的存储桶名称。您可以为开发环境创建一个新的存储桶。
英文:
I got the same error and finally managed to solve the problem with the 2 simple following steps:
Authenticate my application with my credentials to be able to write on it.
$ gcloud auth application-default login
Run dev_appserver with the dev bucket name:
$ dev_appserver.py app --default_gcs_bucket_name [MY_DEV_BUCKET_NAME]
Replace MY_DEV_BUCKET_NAME by your actual bucket. You can create a new bucket just for dev.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论