获取容器中Azure blob文件的名称列表?

11 浏览
0 Comments

获取容器中Azure blob文件的名称列表?

我需要列出Azure Blob文件的名称。目前我能够通过URL列出所有文件,但我只需要名称的列表。我想避免解析名称。请您看一下我下面的代码并指导:\n

CloudStorageAccount backupStorageAccount = CloudStorageAccount.Parse(blobConectionString);
var backupBlobClient = backupStorageAccount.CreateCloudBlobClient();
var backupContainer = backupBlobClient.GetContainerReference(container);
var list = backupContainer.ListBlobs();

0
0 Comments

获取Azure blob容器中的文件名列表的原因是为了获取容器中所有文件的名称。解决方法是使用Azure Blob Storage提供的API来获取容器中的文件列表,并使用循环遍历列表中的每个文件,获取文件的名称、大小和修改日期等信息。

代码示例中,首先创建一个CloudStorageAccount对象,其中包含连接字符串。然后使用该对象创建一个CloudBlobClient对象,并通过CloudBlobClient对象的GetContainerReference方法获取指定容器的引用。接下来,使用容器引用的ListBlobs方法获取容器中所有的Blob对象,并将其转换为CloudBlockBlob类型的列表。然后,通过循环遍历列表中的每个Blob对象,获取每个Blob的名称、大小和修改日期等属性。

此外,代码示例还演示了根据文件名下载特定文件的方法。通过使用容器引用的GetBlockBlobReference方法获取指定文件的Blob对象,并使用Blob对象的DownloadToFile方法将文件下载到本地指定路径。

通过使用Azure Blob Storage提供的API,可以轻松获取Azure blob容器中的文件名列表,并且可以根据文件名下载特定文件。

0
0 Comments

问题出现的原因是在获取Azure blob容器中文件名列表时,使用了错误的变量名。解决方法是将变量list更新为blobs

以下是解决方法的代码示例:

CloudStorageAccount backupStorageAccount = CloudStorageAccount.Parse(blobConectionString);

var backupBlobClient = backupStorageAccount.CreateCloudBlobClient();

var backupContainer = backupBlobClient.GetContainerReference(container);

// useFlatBlobListing is true to ensure loading all files in

// virtual blob sub-folders as a plain list

var blobs = backupContainer.ListBlobs(useFlatBlobListing: true);

var listOfFileNames = new List<string>();

foreach (var blob in blobs) {

var blobFileName = blob.Uri.Segments.Last();

listOfFileNames.Add(blobFileName);

}

return listOfFileNames;

参考来源:How to load list of Azure blob files recursively?

0
0 Comments

问题的出现原因是因为使用Windows Azure Storage 4.3.0版本时,无法获取Azure blob容器中文件的名称列表。解决方法是使用下面的代码:

List blobNames = list.OfType().Select(b => b.Name).ToList();

这段代码可以获取到文件的名称列表。如果需要获取更多的信息,比如文件大小、修改日期等,可以参考下面的答案。在问题的最底部,某些情况下了该解答已经过时,因为ListBlobs方法已经不再可用,可以参考下面的答案获取更新的解决方法。

0