微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure Blob 存储 SDK v12 - BlobClient DownloadAsync 消失了吗?

如何解决Azure Blob 存储 SDK v12 - BlobClient DownloadAsync 消失了吗?

我有使用 BlobClient.DownloadAsync() 方法使用 Azure.Storage.Blobs nuget 包 v12.8 从 Azure Blob 存储下载文件的生产代码,它似乎工作得很好。但是,我升级了 nuget 包并准备编写一些新代码来处理 zip 文件,这也依赖于下载以提取 zip 文件……但注意到 Storage SDK 的最新 API 中有一些变化。>

除了来自 Microsoft 以及来自互联网的几乎每个样本外,都略有错误,因为该方法将返回的 BlobDownloadInfo 包装到 Response<T> 对象中 - 迫使您调用 {{ 1}} 首先,他们似乎也使用上述方法下载 blob 文件 - 但我无法通过 Intellisense 找到该方法

当我查看将我带到 .Value 方法的源代码时,我看到它被 BlobBaseClient.DownloadAsync() 修饰,这意味着该 API 可能会通过向开发人员隐藏它而慢慢被带走,但没有破坏现有代码标记[Editorbrowsable(EditorbrowsableState.Never)]。但我找不到任何肯定指向这一点的文章/问题/文档。看起来像这样:

decompiled BlobBaseClient.DownloadAsync()

话虽如此.....如果目标是从 v12.9 开始,使用 .NET SDK 以异步方式从 Azure Blob 存储(块 Blob)下载文件,则应该采用什么方式?通过 ASP.NET 控制器操作(REST 端点)将其“流式传输”到客户端(如浏览器等)(不保存到服务器上的本地文件)?

Obsolete 上似乎有几个可用的“下载”API,但它们的文档有些含糊不清,而且 MS 文档似乎没有进一步说明:

  • DownloadAsync() - 基于所有示例/博客标记为不可浏览,但事实上的方式
  • DownloadStreamingAsync()
  • DownloadContentAsync()
  • DownloadToAsync()
  • OpenReadAsync()

此外,如果尝试执行一些不通过 REST API 下载到浏览器客户端的其他操作,例如,如果您正在解压缩一个 blob 文件并且提取文件也将进入 blob 存储,那会是最好不要下载,而是通过 BlobClient 打开它?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。