#javascript #node.js #firebase #firebase-storage #firebase-admin
#javascript #node.js #firebase #firebase-хранилище #firebase-администратор
Вопрос:
Привет, я узнал, как загрузить в хранилище 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"));
};
Как вы можете видеть в моем ведре.функция загрузки Я могу загрузить в хранилище firebase, но оно загружается в корневую папку, и я хочу поместить его в /foodImages/myfile.png, например
Есть идеи?
Ответ №1:
На самом деле в облачном хранилище Google нет подлинных «папок».
В консоли облачного хранилища файлы в вашей корзине представлены в виде иерархической структуры папок (точно так же, как файловая система на вашем локальном жестком диске), но это всего лишь способ представления файлов: в корзине нет подлинных папок / каталогов. Консоль облачного хранилища просто использует разные части путей к файлам для «имитации» структуры папок с помощью символа-разделителя «/».
Итак, вам нужно использовать UploadOptions
объект, как показано в документе, со destination
свойством, которое определяется с помощью некоторого «/», следующим образом:
const destinationFilename = "folder1/myfile.png";
bucket.upload('...', { destination: destinationFilename });
Комментарии:
1. Этот документ об облачном хранилище и gsutil объясняет и иллюстрирует, что в корзине нет подлинных папок / каталогов и это «иллюзия иерархического дерева файлов»
Ответ №2:
Из официальной документации:
Если вы хотите использовать хранилище, отличное от указанного выше по умолчанию, или использовать несколько хранилищ в одном приложении, вы можете получить ссылку на пользовательское хранилище, как показано ниже:
const bucket = admin.storage().bucket("foodImages");
(Изменен код, чтобы использовать const ES6 и соответствовать вашему примеру)
Источник: https://firebase.google.com/docs/storage/admin/start#use_custom_buckets
Только одна вещь, теперь, когда мы используем ES6, вы можете использовать const
вместо var
Комментарии:
1. Привет @swarajpure, OP на самом деле хочет загрузить в «папку» в корзине по умолчанию . Ваш ответ правильный для загрузки в другую корзину или «пользовательскую корзину».