【问题标题】:Getting Azure Blob With a partial name使用部分名称获取 Azure Blob
【发布时间】:2014-09-26 15:08:30
【问题描述】:

我在容器中关注 Azure blob,

111_101.jpg
111_102.jpg
111_103.jpg
112_204.jpg
112_205.jpg

现在我知道图像名称的第一部分,即 111 或 112。我可以拍摄从 111 或 112 开始的第一张图像吗?

当变量_image只有文件名的第一部分,即111时,如何修改以下代码。

            string _urlContainer = containerName;
            string _image = "111_102.jpg";

            CloudBlobClient blobClient = null;
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
            blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference(_urlContainer);
            CloudBlockBlob blockBlob = container.GetBlockBlobReference(_image);            
            if (Exists(blockBlob))
            {
              return blockBlob.DownloadByteArray();
            }

【问题讨论】:

    标签: c# azure


    【解决方案1】:

    简短回答:不。

    长答案:
    如果您不知道 blob 名称,则必须使用 container.ListBlobs() 获取所有 blob 引用,然后找到您正在寻找的那个。

    为了减少开销,您可以使用虚拟目录。为你的 blob 命名

    111/101.jpg
    111/102.jpg
    111/103.jpg
    112/204.jpg
    112/205.jpg
    

    来自 Gaurav Mantri 的评论注释:没有必要用斜杠替换下划线,但我相信,SDK 提供了使用斜杠的方法。 (也许他们有一些内部优化,可以更有效地使用斜线)

    您可以使用container.ListBlobs("111/", true); 列出您的 blob

    该函数只会返回那些 blob:

    111/101.jpg
    111/102.jpg
    111/103.jpg
    

    根据这个结果,你可以拿下第一个。

    【讨论】:

    • 亲爱的@FPar 谢谢,我认为这将是一个好方法。但有一点疑问,这行得通吗? container.ListBlobs("111_", true);
    • 是的。 111_ 基本上将充当前缀,并将返回以(和大于)此字符串开头的所有 blob。所以它不仅会返回以111 开头的blob,还会返回112。我会接受@FPar 的建议。
    • 感谢 Gaurav,我将继续执行此操作,将 _ 替换为 /。
    • @GauravMantri 能否请您帮助我,我无法让上述语法适用于 container.ListBlobs ,它只有两个版本,提到的一个和 container.ListBlobs(BlobRequestOptions)。我无法获得语法 container.ListBlobs("111/", true);工作......
    • 我刚刚尝试使用var blobs = container.ListBlobs("111/", true);,它对我来说非常好用。你能分享你的代码吗?
    猜你喜欢
    • 2020-01-02
    • 2021-02-03
    • 1970-01-01
    • 2014-06-22
    • 2017-07-27
    • 2017-02-07
    • 2020-06-14
    • 1970-01-01
    相关资源
    最近更新 更多