【问题标题】:How to replace Microsoft.WindowsAzure.Storage with Microsoft.Azure.Storage.Blob如何用 Microsoft.Azure.Storage.Blob 替换 Microsoft.WindowsAzure.Storage
【发布时间】: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。

问题:

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

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

【问题讨论】:

    标签: c# azure asp.net-mvc-4 azure-blob-storage


    【解决方案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 实际上可以使用它的方法做的任何事情。
    猜你喜欢
    • 2021-08-13
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 2019-04-24
    • 2014-12-17
    • 2020-12-30
    相关资源
    最近更新 更多