Загрузить в определенную папку Firebase Storage NodeJS?

#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 на самом деле хочет загрузить в «папку» в корзине по умолчанию . Ваш ответ правильный для загрузки в другую корзину или «пользовательскую корзину».