0

我想访问容器中的特定 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,所以我的代码不适用于这个游戏。

有人对我有建议吗?

谢谢 ...

4

1 回答 1

1

您的问题更多是您如何搜索目录的问题,而不是 Azure 的问题。

String.Contains 会将包含字符串“Galactians”的任何目录与“Galactians”、“Galactians2”和“my cat is named Galactians99”进行匹配。也许只是...

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

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

于 2013-02-18T13:55:16.983 回答