В рамках проекта Capstone, над которым я работаю над получением степени бакалавра, мне нужен сервер Nodejs, который я настроил на Raspberry PI, чтобы получать входящие запросы от других встроенных систем, таких как NodeMCU или ESP8266, и загружать изображения в Firebase Storage. Если вы слышали или использовали Firebase раньше, вы, вероятно, знаете, что Firebase предоставляет API для связи с их базой данных в реальном времени, хранилищем, аналитикой и многими другими замечательными функциями, которые могут улучшить ваше приложение.



Однако Firebase Storage API не работает на Nodejs. Потратив много времени на исследования, я понял, что с тех пор, как Firebase была приобретена Google, многие технологии, которые использует Firebase, фактически совпадают с тем, что было у Google раньше. Другими словами, Firebase Storage использует Google Cloud Storage, и у Google есть инструмент для вас, если вы хотите использовать его на своем сервере.

Первое, что вам нужно сделать, это получить JSON учетной записи службы из консоли проекта Firebase. Вы сможете получить его в настройках проекта. Затем вам понадобится идентификатор вашего проекта Firebase. Вы также можете проверить свой идентификатор проекта в настройках проекта.

Итак, теперь все должно быть готово, и, поскольку я использую Nodejs для сервера, и для этого примера пришло время создать папку и инициализировать package.json:

npm init

Вам нужно будет установить эти модули для следующего примера кода:

npm install --save @google-cloud/storage express firebase multer

Или, если вы используете пряжу:

yarn add @google-cloud/storage express firebase multer

Модуль multer - это промежуточное программное обеспечение, которое обрабатывает данные формы за вас, чтобы вы могли взаимодействовать с файлом, который клиент загружает в рамках запроса.

Следующий пример кода - это фрагмент исходного кода, который у меня есть для моего проекта Capstone. Я превратил процесс загрузки файла изображения в облачное хранилище в функцию, которая возвращает обещание увеличить возможность повторного использования.

Вы можете просмотреть репозиторий моего проекта Capstone здесь, если вам интересно, и он все еще обновляется:



Ссылка на исходную статью, на которую я ссылался, приведена ниже:



Если вам нравится то, что вы читаете, или вы находите это полезным, поставьте лайк и поделитесь со всеми, кому это может понадобиться! Я все еще учусь, но буду рад поделиться, если то, что я узнал, может вам помочь!