Хотите скачать и загрузить файл из папки внутри блоба, используя новый пакет sdk - Azure .Storage.Blobs - PullRequest
1 голос
/ 14 апреля 2020

Я хочу загрузить и выгрузить файл json в папку, используя путь и jsonContent в строке для в новом пакете sdk - Azure .Storage.Blobs. Я могу сделать это, используя старую библиотеку согласно приведенному ниже коду -

UploadCode -

`public async Task<bool> UploadToBlob(string path, string jsonContentString)
    {
        CloudBlobContainer container = _cloudBlobClient.GetContainerReference(Constant.ContainerName);
        CloudBlockBlob blockBlob = container.GetBlockBlobReference("dose/NotificationDefinition/dose_dosedailyreport.json");
        await blockBlob.UploadTextAsync(jsonContentString);
        return true;
    }`

Код загрузки -

public async Task<string> GetDataFromStorage()
    {
        CloudBlobContainer container = _cloudBlobClient.GetContainerReference(Constant.ContainerName);
        var blockBlob = container.GetBlockBlobReference("dose/NotificationDefinition/dose_dosedailyreport.json");
        return await blockBlob.DownloadTextAsync();
    }

Snapshot of Folder containing json file

1 Ответ

1 голос
/ 14 апреля 2020

Попробуйте следующий код. По сути, мы создаем экземпляр BlockBlobClient и вызываем его Upload и Download для загрузки и выгрузки.

    static void UploadDownloadTest()
    {
        var blobName = "dose/NotificationDefinition/dose_dosedailyreport.json";
        var containerName = "test";
        var connectionString = "UseDevelopmentStorage=true";
        var blockBlobClient = new BlockBlobClient(connectionString, containerName, blobName);
        var jsonContentString = "This is the data I wish to upload";
        using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonContentString)))
        {
            var httpHeaders = new BlobHttpHeaders()
            {
                ContentType = "application/json"
            };
            blockBlobClient.Upload(ms, httpHeaders);
        }
        Console.WriteLine("Upload Successful!");
        var downloadResponse = blockBlobClient.Download().Value;
        using (var stream = downloadResponse.Content)
        {
            byte[] buffer = new byte[downloadResponse.ContentLength];
            stream.Read(buffer, 0, buffer.Length);
            var responseData = Encoding.UTF8.GetString(buffer);
            Console.WriteLine("Blob contents....");
            Console.WriteLine(responseData);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...