为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Golang 将图像上传到 Firebase 存储

如何使用 Golang 将图像上传到 Firebase 存储

Go
偶然的你 2022-06-06 17:58:59
在过去的几个小时里,我一直在努力尝试将图像上传到 Firestore 存储,但我无法做到……图像似乎在 Firestore 上已损坏一次func (fs *FS) Upload(fileInput []byte, fileName string) error {    ctx, cancel := context.WithTimeout(context.Background(), fs.defaultTransferTimeout)    defer cancel()    bucket, err := fs.client.DefaultBucket()    if err != nil {        return err    }    object := bucket.Object(fileName)    writer := object.NewWriter(ctx)    defer writer.Close()    if _, err := io.Copy(writer, bytes.NewReader(fileInput)); err != nil {        return err    }    if err := object.ACL().Set(context.Background(), storage.AllUsers, storage.RoleReader); err != nil {        return err    }    return nil}我没有收到任何错误,但一旦上传......我明白了:同时在谷歌云存储上:有什么想法吗?
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

上传应该没问题。众所周知,Firebase 控制台无法显示不是由网络或移动客户端上传的内容的预览。尝试在本地下载文件以验证它是否与您上传的相同。

随时向Firebase 支持提出有关控制台的功能请求。


查看完整回答
反对 回复 2022-06-06
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

您需要发送一个额外的元数据属性:firebaseStorageDownloadTokens


喜欢:


    import (

        "github.com/google/uuid"

    )


    func (fs *FS) Upload(fileInput []byte, fileName string) error {


        //create an id

        id := uuid.New() 


        ctx, cancel := context.WithTimeout(context.Background(), fs.defaultTransferTimeout)

        defer cancel()

    

        bucket, err := fs.client.DefaultBucket()

        if err != nil {

            return err

        }

    

        object := bucket.Object(fileName)

        writer := object.NewWriter(ctx)


        //Set the attribute

        writer.ObjectAttrs.Metadata = map[string]string{"firebaseStorageDownloadTokens": id.String()} 

        defer writer.Close()

    

        if _, err := io.Copy(writer, bytes.NewReader(fileInput)); err != nil {

            return err

        }

    

        if err := object.ACL().Set(context.Background(), storage.AllUsers, storage.RoleReader); err != nil {

            return err

        }

    

        return nil

    

    }

图像应在这些更改后出现。


查看完整回答
反对 回复 2022-06-06
  • 2 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信