列出 Blob 中的文件?
Listing the files, which are inside a Blob?
刚开始使用 Windows Azure
和 Mapreduce
。我已经在 Azure Portal
中创建了一个 HDInsight
集群,并且还使用名为 BlobFiles
的 Azure Explorer
创建了一个 Block Blob
。
我想知道的是,有没有一种方法可以列出 Blob
中的所有文件,而 Blob
中又包含 Blob Container
中的所有文件?换句话说,如果我将文本文件和图像上传到同一个 Blob
,我如何以编程方式或以其他方式列出这些文本文件和图像?
已搜索解决方案,但仍未找到解决方案。我可以使用 Azure Explorer
单独查看文件的内容,但无法找到查看或显示特定 Blob
!
中的文件的方法
已编辑:
这就是我试图显示 Blob 的内容:
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("fyptest1");
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");
lboxblob.ItemsSource = container.ListBlobs();//lboxblob is the name of my listbox
当我尝试上面的代码时,它多次显示类似 Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob
的内容,依此类推。
如有任何帮助,我们将不胜感激。
每个 Azure 存储 "blob" 是一个 "file." 您最有可能在 "blob container," 中列出 "blobs"。
为此,请使用 CloudBlobContainer.ListBlobs()
方法。
https://msdn.microsoft.com/en-us/library/azure/dd135734.aspx
这是因为绑定最终会在每个返回的列表项上调用 ToString,它只显示类型名称。如果您想在列表框中看到 URI,请将最后一行更改为:
lboxblob.ItemsSource = container.ListBlobs().Select(b => b.Uri);
但请参阅其他答案以获得正确的术语。正如其他人提到的,blob 不包含文件等其他对象。
刚开始使用 Windows Azure
和 Mapreduce
。我已经在 Azure Portal
中创建了一个 HDInsight
集群,并且还使用名为 BlobFiles
的 Azure Explorer
创建了一个 Block Blob
。
我想知道的是,有没有一种方法可以列出 Blob
中的所有文件,而 Blob
中又包含 Blob Container
中的所有文件?换句话说,如果我将文本文件和图像上传到同一个 Blob
,我如何以编程方式或以其他方式列出这些文本文件和图像?
已搜索解决方案,但仍未找到解决方案。我可以使用 Azure Explorer
单独查看文件的内容,但无法找到查看或显示特定 Blob
!
已编辑: 这就是我试图显示 Blob 的内容:
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("fyptest1");
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");
lboxblob.ItemsSource = container.ListBlobs();//lboxblob is the name of my listbox
当我尝试上面的代码时,它多次显示类似 Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob
的内容,依此类推。
如有任何帮助,我们将不胜感激。
每个 Azure 存储 "blob" 是一个 "file." 您最有可能在 "blob container," 中列出 "blobs"。
为此,请使用 CloudBlobContainer.ListBlobs()
方法。
https://msdn.microsoft.com/en-us/library/azure/dd135734.aspx
这是因为绑定最终会在每个返回的列表项上调用 ToString,它只显示类型名称。如果您想在列表框中看到 URI,请将最后一行更改为:
lboxblob.ItemsSource = container.ListBlobs().Select(b => b.Uri);
但请参阅其他答案以获得正确的术语。正如其他人提到的,blob 不包含文件等其他对象。