c# - 想要使用新的 sdk - Azure.Storage.Blobs 包从 blob 内的文件夹下载和上传文件
问题描述
我想通过在新的 sdk - Azure.Storage.Blobs 包中使用字符串中的路径和 jsonContent 来下载和上传文件夹中的 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
并调用它的上传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);
}
}
推荐阅读
- ssl - 如何使用 SSL 证书配置 Github Pages 站点
- c# - 如何在 Jenkins 中使用 Nuget 包构建 VS 项目
- python - 沿 2 个维度组合 2 个 Xarray DataArrays(以便从粗网格中获得更精细的网格)
- rust - 将 serde 用于两种(反)序列化格式
- arrays - c中的局部变量和动态内存分配
- flutter - 我怎么能像这个小部件一样,当数据增长时,最后两项会自动下降
- c - 使用整数与牛顿求平方根
- reactjs - 更改 MUI v5 的所有导入语句
- flutter - 函数中的零安全问题
- python-sphinx - 编辑 Sphinx Alabaster jinja 模板