如何在我的容器中找到特定的blob

时间:2013-02-18 09:17:51

标签: azure azure-storage-blobs

我想访问容器中的特定blob,但我尝试了一些不同的方法,但我想了解在容器中查找特定blob的最佳方法。这是我的代码:

            var game = Get<Game>().SingleOrDefault(x => x.Name == name);

            var account = CloudStorageAccount.FromConfigurationSetting("blobConnection");

            var container = account
                                   .CreateCloudBlobClient()
                                   .GetContainerReference("gamehtmls");

            var blobUri = container.ListBlobs().SingleOrDefault(x => x.Uri.ToString().ToLower().Contains(name.ToLower()));

            var blobName = blobUri.Uri.AbsolutePath.Replace("/gamehtmls/", "");

            var blob = container.GetBlobReference(String.Format("{0}index.html", blobName));
            blob.Properties.ContentType = "text/html";

并且在这个容器中我有两个游戏名称:Galactians和Galactians2所以我的代码不能用于这个游戏。

有人对我有建议吗?

谢谢...

1 个答案:

答案 0 :(得分:1)

您的问题更多地是您搜索目录的问题而不是Azure的问题。

String.Contains将匹配任何包含字符串'Galactians'和'Galactians','Galactians2'和'我的猫被命名为Galactians99'的目录。也许只是......

var blobUri = container.ListBlobs().SingleOrDefault(x => x.Uri.ToString().ToLower() == name.ToLower());

...将完全匹配名称,甚至是String.StartsWith,如果有一些额外的字符你无法检测到。