获取Blob容器中特定前缀内的所有Uri的名称
本文关键字:Uri 前缀 Blob 获取 | 更新日期: 2023-09-27 18:09:05
我想把所有的东西都放在"10"前缀中,像这样:
https://ideesstorage.blob.core.windows.net/development-fotosproyectos/10/29.jpg到目前为止,我只能使用这个目录。Uri:
https://ideesstorage.blob.core.windows.net/development-fotosproyectos/10/下面的代码获取容器中的所有目录,而不是前缀中的文件名,如预期的那样:
var query = blobContainer.ListBlobs(null, false, BlobListingDetails.None);
foreach (IListBlobItem item in query)
{
if (item.GetType() == typeof(CloudBlobDirectory))
{
CloudBlobDirectory directory = (CloudBlobDirectory)item;
Console.WriteLine("Directory: {0}-{1}", directory.Uri, directory.Prefix);
}
}
我想要的是让它在指定的前缀中获得每个文件的Uri。
提前感谢您的时间。
看看下面的代码:
static void ListBlobsInFolder()
{
var account = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
var blobClient = account.CreateCloudBlobClient();
var containerName = "<container-name>";
var folderName = "<folder-name>";
var container = blobClient.GetContainerReference(containerName);
var query = container.ListBlobs(prefix:folderName, useFlatBlobListing:true, blobListingDetails:BlobListingDetails.None);
foreach (var item in query)
{
Console.WriteLine(item.Uri);
}
}
基本上,您需要将true
传递给useFlatBlobListing
参数,将name of the folder
传递给prefix
(在您的情况下为"10"
)。