当前位置: 首页 > 知识库问答 >
问题:

Azure Blob存储列表容器和Blob

宓和同
2023-03-14

我正在处理一个Azure存储项目,其中我需要在容器中上传和下载blob,并在列表框中列出容器和blob。我无法在我的列表框中显示容器和blob。

最后是我调用上传、下载和列表方法的接口背后的代码:

共有2个答案

邢博文
2023-03-14

我不清楚你遇到了什么问题,因为你还没有完全解释。从此示例中提取的以下代码演示了容器中的 Blob 列表(包括分页支持)。

BlobContinuationToken token = null; 
do 
{ 
BlobResultSegment resultSegment = await container.ListBlobsSegmentedAsync(token); 
token = resultSegment.ContinuationToken; 
foreach (IListBlobItem blob in resultSegment.Results) 
{ 
// Blob type will be CloudBlockBlob, CloudPageBlob or CloudBlobDirectory 
Console.WriteLine("{0} (type: {1}", blob.Uri, blob.GetType()); 
} 
} while (token != null); 
施誉
2023-03-14

在webform中单击Button3时看不到任何结果的原因是,您无法从ListBlob方法中获取任何数据。

更改ListBlob方法以返回如下结果:

public List<string> GetBlobs()
{
    List<string> blobs = new List<string>();

    // 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("mycontainer");

    // Loop over items within the container and output the length and URI.
    foreach (IListBlobItem item in container.ListBlobs(null, false))
    {
        if (item.GetType() == typeof (CloudBlockBlob))
        {
            CloudBlockBlob blob = (CloudBlockBlob) item;

            blobs.Add(string.Format("Block blob of length {0}: {1}", blob.Properties.Length, blob.Uri));

        }
        else if (item.GetType() == typeof (CloudPageBlob))
        {
            CloudPageBlob pageBlob = (CloudPageBlob) item;

            blobs.Add(string.Format("Page blob of length {0}: {1}", pageBlob.Properties.Length, pageBlob.Uri));

        }
        else if (item.GetType() == typeof (CloudBlobDirectory))
        {
            CloudBlobDirectory directory = (CloudBlobDirectory) item;

            blobs.Add(string.Format("Directory: {0}", directory.Uri));
        }
    }

    return blobs;
}

我假设您有一个名为ListBox1的ListBox。调用如下方法:

protected void Button3_Click(object sender, EventArgs e)
{
    ListBox1.DataSource = GetBlobs();
    ListBox1.DataBind();
}
 类似资料:
  • 问题内容: 我之所以来到这里,是因为我在Oracle数据库中没有足够的经验来解决这个问题。让我解释: 桌子 我有一个表,我们会打电话给 属性 ,包含3列: ID ,属性的ID, -edit:ENTITY_ID为好,它是指/编辑-实体 , TABLE_NAME ,包含表的名称,其中的存储该属性的值,以及 Column_name ,其中包含该表中存储该值的列的名称。 在 Table_name 列中引用

  • Azure函数存储帐户Blob容器触发器 在我们的一个用例中,我正在为具有以下条件的存储帐户容器中的任何活动寻找Azure函数触发器 < li >具有特定命名约定的容器(名称如xxxx-input) < li >它应该自动检测是否创建了新的容器(具有特定的命名约定) < li>

  • 我有一个在Core .NET 2.2框架顶部使用编写的控制台应用。 我正在尝试C#库来获取我的容器中所有目录的列表。我的理解是Azure Blob存储并没有真正的目录。相反,它创建虚拟名称,Blob看起来像Azure Blob Explorer等浏览器中容器内的文件夹 我使用以下代码存储文件: 所以我想在我的容器内选择前缀aka文件夹名称的不同列表。 所以如果我有以下blob“foldername

  • 我试图使用Python在azure存储中创建blob容器。我正在使用MSDN提供的文档在我的python程序中集成azure blob存储。 代码如下: 第一次创建blob容器,但第二次就出错了。

  • 问题内容: 我无法在Google Container Engine中使用“应用程序默认凭据”。这些文档说,它们是为App Engine和Compute Engine设计的,但是有人告诉我,它们应该透明地传递给在Container Engine上运行的容器。 这是失败的代码: 失败的错误: 期望Application Default Credentials与Container Engine一起使用是