问题描述
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 下例如 有什么想法吗?
解决方法
实际上 Google Cloud Storage 没有真正的“文件夹”。
在 Cloud Storage 控制台中,存储桶中的文件以文件夹的分层结构呈现(就像本地硬盘上的文件系统一样)但这只是呈现文件的一种方式:没有真正的存储桶中的文件夹/目录。 Cloud Storage 控制台只是使用文件路径的不同部分,通过使用“/”分隔符来“模拟”文件夹结构。
因此,您需要使用 UploadOptions
中所示的 doc 对象和 destination
属性,该属性用一些“/”定义,如下所示:
const destinationFilename = "folder1/myfile.png";
bucket.upload('...',{ destination: destinationFilename });
,
来自官方文档:
如果您想使用上面提供的默认存储桶以外的存储桶,或者在单个应用中使用多个存储桶,您可以检索对自定义存储桶的引用,如下所示:
const bucket = admin.storage().bucket("foodImages");
(修改代码以使用 ES6 的 const 并适合您的示例)
来源:https://firebase.google.com/docs/storage/admin/start#use_custom_buckets
只有一件事,现在我们使用 ES6,您可以使用 const
代替 var