想要使用新的 sdk - Azure.Storage.Blobs 包从 blob 中的文件夹下载和上传文件

Want to download and upload file from a folder inside the blob using new sdk - Azure.Storage.Blobs package

我想通过使用路径和 json新 sdk - Azure.Storage.Blobs 包中字符串中的内容来下载和上传文件夹中的 json 文件。我可以按照下面的代码使用旧库来做到这一点 -

上传代码-

`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();
    }

试试下面的代码。基本上我们正在创建一个用于上传和下载的 BlockBlobClient and calling it's Upload and 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);
        }
    }