【问题标题】:Upload into specific folder Firebase Storage NodeJS?上传到特定文件夹 Firebase Storage NodeJS?
【发布时间】:2021-04-27 03:48:48
【问题描述】:

嘿,我知道如何上传到 Firebase 存储:

admin.initializeApp({
  credential: secret,
  databaseURL: secret,
  storageBucket: secret,
});

var bucket = admin.storage().bucket();


const uploadToFireStorage = (filename, query, fileType, imageURL) => {
  bucket.upload(filename).then(console.log("uploaded"));
};

正如您在我的 bucket.upload 函数中看到的那样,我可以上传到 firebase 存储,但它会上传到根文件夹中,我想将它放在 /foodImages/myfile.png 下 有什么想法吗?

【问题讨论】:

    标签: javascript node.js firebase firebase-storage firebase-admin


    【解决方案1】:

    其实谷歌云存储并没有真正的“文件夹”。

    在 Cloud Storage 控制台中,您存储桶中的文件以文件夹的层次结构呈现(就像您本地硬盘上的文件系统一样),但这只是一种呈现文件的方式:没有正版存储桶中的文件夹/目录。 Cloud Storage 控制台只是使用文件路径的不同部分来“模拟”文件夹结构,使用“/”分隔符。

    因此,您需要使用doc 中所示的UploadOptions 对象和destination 属性,该属性用一些“/”定义,如下所示:

    const destinationFilename = "folder1/myfile.png";
    bucket.upload('...', { destination: destinationFilename });
    

    【讨论】:

    • Cloud Storage 和 gsutil 上的 doc 解释并说明存储桶中没有真正的文件夹/目录以及这种“分层文件树的错觉”
    【解决方案2】:

    来自官方文档:

    如果您想使用上面提供的默认存储桶以外的存储桶,或者在单个应用程序中使用多个存储桶,您可以检索对自定义存储桶的引用,如下所示:

    const bucket = admin.storage().bucket("foodImages");
    

    (修改代码以使用 ES6 的 const 并适合您的示例)

    来源:https://firebase.google.com/docs/storage/admin/start#use_custom_buckets

    一件事,现在我们使用 ES6,你可以使用 const 代替 var

    【讨论】:

    • 您好@swarajpure,OP 实际上想在 default 存储桶中的“文件夹”下上传。您的答案对于上传到不同的存储桶或“自定义存储桶”是正确的。
    猜你喜欢
    • 2022-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    相关资源
    最近更新 更多