Куда поместить строку подключения к хранилищу Azure в приложении узла, которое использует файл конфигурации, а не переменные среды?

#javascript #node.js #database-connection #azure-storage #config

#javascript #node.js #подключение к базе данных #azure-хранилище #конфигурация

Вопрос:

Мне нужно получить доступ к хранилищу больших двоичных объектов Azure Storage, чтобы вставить некоторый JSON. Однако в официальной документации для первого подключения к моей базе данных мне нужно, чтобы строка подключения была распознана Azure. Традиционно. Azure будет искать переменные среды для строки подключения, но в этом приложении мы используем файл конфигурации с ключами, расположенными как таковые…

 module.exports = {
  AZURE_STORAGE_CONNECTION_STRING: AZURE_STORAGE_CONNECTION_STRING,
};
  

Не похоже, что Azure распознает ключи таким образом. Вместо создания файла среды для этой строки, возможно ли передать строку в другом месте? Скажем, когда мы впервые вызываем

 const storage = require('azure-storage');
const blobService = storage.createBlobService();
  

Или, возможно, при использовании метода хранения?

    const uploadToBlob = async (containerName, filePath) => {

        await blobService.createBlockBlobFromLocalFile(containerName, blobName, fullPath, err => {
  

Спасибо, что уделили время, заглядывает!

Ответ №1:

Ответ был очень простым. Ключ учетных данных вообще не обязательно должен находиться в файле .env, но может храниться в папке конфигурации и передаваться Azure при первом создании экземпляра службы больших двоичных объектов.

 const keys = require('../config/keys');
const blobService = storage.createBlobService(keys.AZURE_STORAGE_CONNECTION_STRING);
  

Ответ №2:

На основе документации вы могли бы использовать файл .env, который включал бы строку подключения:

вы должны предоставить строку подключения для своей учетной записи хранилища. Образец репозитория включает файл с именем .env.example. Вы можете переименовать этот файл, удалив расширение .example, в результате чего будет создан файл с именем .env. Внутри файла .env добавьте значение строки подключения после ключа AZURE_STORAGE_CONNECTION_STRING.

Я бы рекомендовал проверить образцы кода в этом репозитории

Поддерживаемый формат:

 AZURE_STORAGE_CONNECTION_STRING=<replace with your storage connection string>
  

Скорее всего, вы могли бы выполнить некоторые манипуляции со строкой, чтобы заменить «:» на =, а затем передать его переменной для использования.