如何用 Microsoft.Azure.Storage.Blob 替换 Microsoft.WindowsAzure.Storage

Posted

技术标签:

【中文标题】如何用 Microsoft.Azure.Storage.Blob 替换 Microsoft.WindowsAzure.Storage【英文标题】:How to replace Microsoft.WindowsAzure.Storage with Microsoft.Azure.Storage.Blob 【发布时间】:2021-01-18 23:15:38 【问题描述】:

在我的 asp.net mvc 应用程序中,我使用 Microsoft.WindowsAzure.Storage 8.0.1 向/从 azure 云容器上传/下载 blob。现在 NuGet 包管理器通知我 Microsoft.WindowsAzure.Storage 已弃用,我应该使用 Microsoft.Azure.Storage.Blob。

问题:

    当我继续使用 Microsoft.WindowsAzure.Storage 8.0.1 时,我会遇到哪些问题? 是否有任何推荐的方法将 Microsoft.WindowsAzure.Storage 8.0.1 替换为 Microsoft.Azure.Storage.Blob? 当我用 Microsoft.Azure.Storage.Blob 替换 Microsoft.WindowsAzure.Storage 8.0.1 时,我是否必须重新编写处理上传/下载 Blob 的代码?

我们将不胜感激任何帮助和建议。

【问题讨论】:

【参考方案1】:

首先,稍微修正一下。 Microsoft.Azure.Storage.Blob 已被更新的 SDK Azure.Storage.Blobs 替换,建议您升级到新的 SDK (v12 SDSK)。这是微软更新所有 SDK 以遵循统一 API 标准的举措。你可以阅读更多关于here

当我继续使用 Microsoft.WindowsAzure.Storage 8.0.1 时,我会遇到什么问题?

WindowsAzure.Storage 已弃用,最新版本 9.3.3 已于 2018 年 11 月发布。虽然它仍然有效且尚未失去支持,但建议移至较新的 Azure.Storage.Blobs 包以利用更好的性能,更新、功能发布和未来的持续支持。

是否有任何推荐的方法将 Microsoft.WindowsAzure.Storage 8.0.1 替换为 Microsoft.Azure.Storage.Blob?

如开头所述,正确的包实际上是Azure.Storage.Blobs。有一篇不错的文章更新指南和提示here

当我用 Microsoft.Azure.Storage.Blob 替换 Microsoft.WindowsAzure.Storage 8.0.1 时,我是否必须重新编写处理上传/下载 blob 的代码?

升级到旧包Microsoft.Azure.Storage.Blob 只需要对代码进行很少的更改。但是最新的 SDK Azure.Storage.Blobs 需要您进行一些更改。如here 所述,命名空间、类、方法有一些变化。

|  Package  |    Old Microsoft.Azure.Storage.Blob   |   v12   Azure.Storage.Blobs   |
|:---------:|:-------------------------------------:|:-----------------------------:|
| Namespace | Microsoft.Azure.Storage.Blob.Protocol | Azure.Storage.Blobs.Models    |
| Namespace | Microsoft.Azure.Storage.Blob          | Azure.Storage.Blobs           |
| Namespace | Microsoft.Azure.Storage               | Azure                         |
| Class     | CloudBlobClient                       | BlobServiceClient             |
| Class     | CloudBlobContainer                    | BlobContainerClient           |
| Class     | CloudBlockBlob                        | BlobClient or BlockBlobClient |
| Class     | StorageException                      | RequestFailedException        |
| Class     | BlobErrorCodeStrings                  | BlobErrorCode                 |

更新:由于您使用的是 .net framework 4.5.2,因此您不支持 Azure.Storage.Blobs。你必须选择Microsoft.Azure.Storage.Blob。

【讨论】:

我的应用程序面向 .NET Framework 4.5.2,但 Azure.Storage.Blobs 至少需要 4.6.1。没有机会在 4.5.2 中使用 Azure.Storage.Blobs? 很遗憾没有。在这种情况下,我建议使用较旧的 V11 SDK,即支持 4.5.2 的 Microsoft.Azure.Storage.Blob 这个的替代品是什么? docs.microsoft.com/en-us/dotnet/api/… 您并不真的需要 CloudBlobDirectory 来做任何真实的事情。 V12 SDK 中的 BlobContainerClient 和 BlobServiceClient 实际上可以使用它的方法做的任何事情。

以上是关于如何用 Microsoft.Azure.Storage.Blob 替换 Microsoft.WindowsAzure.Storage的主要内容,如果未能解决你的问题,请参考以下文章

如何用minicom配置路由器

脑筋急转弯:如何用两个栈实现一个队列 && 如何用两个队列实现一个栈

脑筋急转弯:如何用两个栈实现一个队列 && 如何用两个队列实现一个栈

如何用arcgis做电子地图

如何用Highcharts制作柱形图

如何用python抓取电话