C# 获取具有部分名称的Azure Blob
我在一个容器中有以下蓝色斑点C# 获取具有部分名称的Azure Blob,c#,azure,C#,Azure,我在一个容器中有以下蓝色斑点 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";
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();
}
简短回答:没有
长答覆:
如果您不知道blob名称,那么必须使用container.ListBlobs获取所有blob引用,然后找到您正在寻找的blob引用
为了减少开销,可以使用虚拟目录。说出你的名字
111/101.jpg
111/102.jpg
111/103.jpg
112/204.jpg
112/205.jpg
请注意Gaurav Mantri的评论:没有必要用斜杠替换下划线,但是我相信SDK提供了使用斜杠的方法。也许他们有一些内部优化,可以更有效地使用斜杠
您可以使用container.ListBlobs111/列出您的blob,true
该函数将仅返回以下BLOB:
111/101.jpg
111/102.jpg
111/103.jpg
根据这个结果,你可以选择第一个。简短回答:不
长答覆:
如果您不知道blob名称,那么必须使用container.ListBlobs获取所有blob引用,然后找到您正在寻找的blob引用
为了减少开销,可以使用虚拟目录。说出你的名字
111/101.jpg
111/102.jpg
111/103.jpg
112/204.jpg
112/205.jpg
请注意Gaurav Mantri的评论:没有必要用斜杠替换下划线,但是我相信SDK提供了使用斜杠的方法。也许他们有一些内部优化,可以更有效地使用斜杠
您可以使用container.ListBlobs111/列出您的blob,true
该函数将仅返回以下BLOB:
111/101.jpg
111/102.jpg
111/103.jpg
根据这个结果,您可以选择第一个。亲爱的@FPar谢谢,我认为这将是一个很好的选择。但有一点疑问,这行得通吗?container.ListBlobs111,true;对111_u基本上充当前缀,将返回所有以该字符串开头或大于该字符串的blob。因此,它不仅会返回从111开始的水滴,还会返回112。我同意@FPar的建议。谢谢Gaurav,我将继续用/@GauravMantri替换u。你能帮我一下吗?我不能让上述语法适用于container.ListBlobs,它只有两个版本,提到的一个和container.ListBlobsBlobRequestOptions。我无法获取语法container.ListBlobs111/,true;正在工作…我刚刚尝试使用var blobs=container.ListBlobs111/,true;这对我来说非常好。你能分享你的代码吗?亲爱的@FPar谢谢,我认为这将是一个很好的方式。但有一点疑问,这行得通吗?container.ListBlobs111,true;对111_u基本上充当前缀,将返回所有以该字符串开头或大于该字符串的blob。因此,它不仅会返回从111开始的水滴,还会返回112。我同意@FPar的建议。谢谢Gaurav,我将继续用/@GauravMantri替换u。你能帮我一下吗?我不能让上述语法适用于container.ListBlobs,它只有两个版本,提到的一个和container.ListBlobsBlobRequestOptions。我无法获取语法container.ListBlobs111/,true;正在工作…我刚刚尝试使用var blobs=container.ListBlobs111/,true;这对我来说非常好。你能分享你的代码吗?