в моем случае у меня есть список URL-адресов, и я хочу загрузить каждый файл из этих URL-адресов и упорядочить его в хранилище firebase, моя проблема в том, что я не могу создать папки в хранилище firebase через nodejs javascript / typescript.
хорошо хранилище firebase предлагает ref () и дочерний метод для загрузки файлов в дочернюю папку (см. this ), но firebase предлагает только этот метод для клиентских библиотек firebase, это не так что мы не можем использовать клиентскую библиотеку в nodejs, но некоторые пространства имен были скрыты при подключении клиентской библиотеки firebase в nodejs, и хранилище является одним из них (см. this ).
Я рад, что они рассмотрели интерфейс и бэкэнд по отдельности, по этой самой причине, что у фронта и бэкенда совершенно разные сценарии для безопасности и вариантов использования, поэтому то, что они действительно написали для использования в nodejs, - это firebase admin, и я не вижу ref и дочерний метод в официальной документации, которую они сказали, это это нет никакого другого способа присвоить имя файлу, который я загружаю, ни какого-либо метода для создания папок в go дочерних каталогах, когда я загружаю файл со своего компьютера, он сохраняется в корзине root с тем же именем, что и имя файла был на моем компьютере, хотя я могу создавать папки из консоли Firebase вручную, но это не будет соответствовать моим требованиям, наверняка должен быть какой-либо способ создания папок программно.
Я также пытался использовать библиотеку облачного хранилища Google const {Storage} = require('@google-cloud/storage');
, но оказалось, что администратор Firebase и облачная библиотека Gogole используют один и тот же документ и имеют одинаковый интерфейс, по крайней мере, в части загружаемого файла.
Ну, я потратил свой день (ну и ночь, так как сейчас 4:46 утра), пробуя разные библиотеки и копаясь в их документах, которые я также нашел немного неорганизованными и отсутствующими примерами кода.
любой Буду признателен за помощь, мой фрагмент кода до сих пор следующий из их do c и загрузки файла правильно:
import "firebase/firestore"
admin.initializeApp({
credential: admin.credential.cert("./../path-to-service account-cert.json"),
databaseURL: 'gs://bilal-assistant-xxxxx.appspot.com'
});
const quran_bucket = admin.storage().bucket("quran-bucket");
quran_bucket.upload("./my_computer_path/fatiha.mp3", {
gzip: true,
metadata: {
cacheControl: 'public, max-age=31536000',
}
}).then(uploadResponse => {
console.log(` uploaded complete.`);
}).catch((reason: any) => {
console.log("reason: ", reason);
})
Все, что я хотел, это сохранить аудиофайл в папке, а не в корзине root