Я пытаюсь создать утилиту администратора Firebase, которую можно использовать для загрузки файлов в хранилище Firebase, а затем вернуть долгоживущий URL-адрес, который я могу сохранить в БД Firebase Realtime для доступа к этому файлу.
Полагаю, что я могу сделать это в консоли Firebase, перейдя в консоль моего проекта, щелкнув Storage
слева, щелкнув Upload File
. Как только файл загружен, я могу получить URL-адрес, выбрав файл в списке, чтобы открыть правую информационную панель, а затем развернув раздел File Location
.
В этом разделе есть Download URL
, который представляется долгоживущим, но отзывным URL-адресом, содержащим токен некоторого типа. Безопасно ли хранить этот URL в БД для длительного хранения? Похоже, это тот же URL, который возвращается из файла upload api , который, как показал другой Google Codelab (для Flutter), хранится в базе данных реального времени.
Однако я не могу понять, как создать URL-адрес такого типа из API управления хранилищем данных Firebase . Я использую NodeJS, но он должен применяться ко всем версиям API AFAIK. Я могу найти только вызов getSignedUrl
, который, по-видимому, не возвращает тот же URL, и кажется ограниченным по времени и содержит ссылку на учетную запись службы ... не то, что я хочу сохранить в базе данных.
let bucket = admin.storage().bucket();
bucket.upload('innovation3.jpeg', {destination: 'image_assets/innovation3.jpeg'},
function(err, file) {
file.getSignedUrl({action: 'read'},
function(err, url) {
console.log('Url: ' + url);
})
});
Можно ли получить этот URL-адрес из API управления или мне нужно использовать какой-то другой метод. Что рекомендуется?