Как я могу получить BLOB и добавить его в мою конфигурацию? - PullRequest
0 голосов
/ 01 мая 2020

У меня есть веб-API, который использует кучу файлов appSettings для загрузки тестовых данных. Я хочу изменить местоположение этих данных на Azure Blob. Основываясь на тестовой инфраструктуре, я хотел бы преобразовать BLOB-объект в объект IConfiguration.

Для этого sh я хотел использовать AddJsonStream для ConfigurationBuilder.

Я создал этот метод для go извлечения, захвата большого двоичного объекта и преобразования его в поток:

    public static Stream GetBlobAsStream(Uri blobURI)
    {
        var storageAccount = CloudStorageAccount.Parse(AZURE_STORAGE_CONNECTION_STRING);
        var cloudBlobClient = storageAccount.CreateCloudBlobClient();
        var cloudBlobContainer = cloudBlobClient.GetContainerReference(blobContainer);
        var cloudBlob = cloudBlobContainer.GetBlockBlobReference(blobName);
        var stream = cloudBlob.OpenRead();
        return stream;
    }

Теперь этот метод использует набор жестко закодированных констант, которые я хотел бы удалить. Как я могу удалить жесткое кодирование и найти необходимую azure информацию в зависимости от среды, в которой она выполняется? Или я запрограммировал себя здесь в угол?

1 Ответ

1 голос
/ 01 мая 2020

Вы можете попытаться создать экземпляр CloudBlockBlob с использованием Blob URI и клиента Blob, выполнив что-то вроде:

public static Stream GetBlobAsStream(Uri blobURI)
{
    var storageAccount = CloudStorageAccount.Parse(AZURE_STORAGE_CONNECTION_STRING);
    var cloudBlobClient = storageAccount.CreateCloudBlobClient();
    var cloudBlob = new CloudBlockBlob(blobURI, cloudBlobClient);
    var stream = cloudBlob.OpenRead();
    return stream;
}

или создать экземпляр CloudBlockBlob с использованием URI Blob и учетных данных хранилища. делая что-то вроде:

public static Stream GetBlobAsStream(Uri blobURI)
{
    var storageAccount = CloudStorageAccount.Parse(AZURE_STORAGE_CONNECTION_STRING);
    var cloudBlob = new CloudBlockBlob(blobURI, storageAccount.Credentials);
    var stream = cloudBlob.OpenRead();
    return stream;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...