azure - 重用 CloudBlobClient 对象

标签 azure azure-storage azure-blob-storage

我有这两个对象用于 Azure Blob 存储访问,并希望在 ASP.NET MVC 应用程序中使用它们。

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("Deesd");

我的问题是:我可以在所有应用程序请求中重用相同的对象实例,还是应该在每个方法中实例化一个新对象?

最佳答案

您可以重用实例,只是不要同时从多个线程访问同一个实例,因为它不是线程安全的。

2019 年 4 月更新(7 年后)

注意:您应该始终查阅最新的 SDK 文档。

是的,现在(至少从本次更新开始)可以在较新版本的 SDK 中以线程安全的方式安全地使用 CloudBlobClient 和其他对象。事实上,您找到的一些文档鼓励这样做,但从技术上讲,仍然不能保证在设计上保持这种方式(例如,SDK 的 future 主要版本可能会违背这一点)。

像往常一样,您可能应该为应用程序级逻辑提供一个抽象,以尽可能隐藏客户端及其生命周期。然后你让抽象担心生命周期管理。也许今天使用一个简单的静态实例,明天可能使用池化,但至少如果出现问题,大部分应用程序逻辑都会从中抽象出来。 👍

关于azure - 重用 CloudBlobClient 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934111/

相关文章:

Azure AppInsight 不适用于静态文件应用程序

php - 从外部 PHP 应用程序通过基本身份验证触发 Azure WebJobs API?

c# - 使用 Azure 存储数据移动库防止多次传输操作

azure - Azure 存储可以从通用存储更改为 Blob 存储吗

azure - 如何检查Azure blob是否存在于多个容器中的存储帐户中的任何位置?

vb.net - .Net 4.5.1 网站的 Azure Blob 客户端库安装失败

c# - 指定的资源名称包含无效字符 即使 Blob 名称有效,为 Blob 生成 SAS url 时也会出错

asp.net - 尝试访问 Azure Web 应用程序中的特定页面时发生错误

c# - 使用 C# 在多级文件夹结构中查找 Azure 存储容器中的 Blob

azure - 是否可以使用 New Relic 来监控 Azure Function 应用程序?