当前位置: 首页 > 知识库问答 >
问题:

Firebase管理SDK上传文件到Google云存储

姜俊民
2023-03-14
func main() {
   config := &firebase.Config{
      ProjectID:     "myproject-id",
      StorageBucket: "myproject-id.appspot.com",
   }
   credentialsJSON := os.Getenv("GOOGLE_CREDENTIALS")
   creds := google.Credentials{JSON: []byte(credentialsJSON)}
   opt := option.WithCredentials(&creds)

   app, err := firebase.NewApp(context.Background(), config,
    opt)

   if err != nil {
     log.Fatalln(err)
   }
   ctx, cancel := context.WithTimeout(context.Background(), time.Second*50)
   defer cancel()

   client, err := app.Storage(ctx)
   if err != nil {
     log.Fatalln(err)
   }
   fmt.Println(client)

   bucket, err := client.DefaultBucket()

   object := bucket.Object("foo.png")
   wc := object.NewWriter(ctx)

   r, err := os.Open("/Users/foo/test.png")
   defer r.Close()

   if _, err = io.Copy(wc, r); err != nil {
      log.Error(err)
   }

   if err := wc.Close(); err != nil {
     fmt.Println(err)
     log.Error(err)
   }
}
 Post "https://storage.googleapis.com/upload/storage/v1/b/myproject-id.appspot.com/o?alt=json&name=foo.png&prettyPrint=false&projection=full&uploadType=multipart": oauth2: Transport's Source is nil

Firebase Admin SDK文档清楚地说明,服务帐户对存储帐户具有完全的范围控制,但由于传输令牌源为nil,因此正确引导凭据似乎有些错误。

暂时还没有答案

 类似资料:
  • 这是很有帮助的,因为我能够上传一个与管理员使用它的文件。 虽然我仍然不知道如何指定路径,因为这只是把它放在我的firebase存储桶的顶层。有人知道我如何指定一个路径将我的文件与API嵌套得更深吗?

  • 根据文档,我必须把文件名传递给函数才能上传一个文件。 我想能做这样的事

  • 我试图从我的移动混合应用程序(离子3)发送一张图片到我的Heroku后端(Node.js),并让后端将图片上传到Firebase存储,并将新上传的fil下载url返回到移动应用程序。 上载成功,但当我转到Firebase存储控制台时,当我试图显示图片的预览时出现错误,下载时无法从计算机打开它。我想这是一个编码的东西...? 如何检索新上传的文件下载url?我希望在中返回一个对象,就像在函数中一样,

  • 在firebase storage的web sdk中,您可以从Blob数据上载图像。我有一个nodeJS应用程序,想将blob数据中的图像上传到我的存储桶中。在文档中,如果运行节点服务器环境,建议使用AdminSDK。但我在firbase存储管理文档中找不到此功能。 这是我的密码:

  • 我正在为Python使用Firebase Admin SDK。据我所知,在云控制台的IAM部分,admin SDK具有编辑器和存储对象管理角色。有什么方法可以通过Python将上传的对象公之于众? 在docs:Python GCS API中还没有找到其他有用的东西 谢了。 代码示例

  • 我在本地开发服务器上运行代码,但使用在项目上配置的GCS默认桶名。 Python 2.7版