【发布时间】:2014-08-14 23:33:11
【问题描述】:
我目前正在参与从 Azure 1.7 升级到 2.2 的工作,并且遇到了存储方面的重大更改。库中的所有存储调用都包含在单元测试中,并且我已经解决了大部分更改。
我完全被我们的一个核心方法所困扰,它获取目录中的子目录列表。我知道它们不是实际的目录,而是 blob 名称的一部分,但该功能在 2.0 之前就存在,我们在近 30 种不同的服务中大量使用它。
存储 blob 地址是 testdata/test/test1/blob.txt
还有测试
/// Unit Test
[Test]
public void BuildDirectoryAndRetrieveUsingSubDirectory()
{
CloudBlobDirectory subDirectory = GetBlobDirectory("testdata/test/");
IEnumerable<CloudBlobDirectory> dirs =
subDirectory.ListBlobs().OfType<CloudBlobDirectory>();
Assert.AreEqual(1, dirs.Count());
}
GetBlobDirectory 的旧 1.7 代码返回 testdata/test/ 中每个目录 blob 的列表,因此在这种情况下将返回 test1
/// Azure Storage 1.7
public static CloudBlobDirectory GetBlobDirectory(string directoryReference)
{
return BlobClient.GetBlobDirectoryReference(directoryReference);
}
我曾尝试使用 2.0 获得相同的结果,但徒劳无功
/// Azure Storage 2.0
public static CloudBlobDirectory GetBlobDirectory(string directoryReference)
{
string containerName = GetContainerNameFromDirectoryName(directoryReference);
CloudBlobContainer container = BlobClient.GetContainerReference(containerName);
return container.GetBlobDirectoryReference(directoryReference);
}
然而,在测试中,dirs 只返回“枚举未产生任何结果”。
任何人都可以帮忙 - 我非常希望单独留下测试代码,但从方法返回相同的结果。
谢谢
【问题讨论】:
标签: azure azure-storage azure-blob-storage