我有这两个对象用于 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/