簡體   English   中英

Azure Blob存儲列表容器和blob

[英]Azure Blob Storage list container and blobs

我正在開發Azure存儲項目,我需要在容器中上傳和下載blob,並在列表框中列出容器和blob。 我無法在列表框中顯示容器和blob。

這是我的List代碼: 在此輸入圖像描述

最后是我調用上傳,下載和列表方法的界面背后的代碼:

在此輸入圖像描述

單擊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;
}

在您的webform中,我假設您有一個名為ListBox1的ListBox。 調用方法如:

protected void Button3_Click(object sender, EventArgs e)
{
    ListBox1.DataSource = GetBlobs();
    ListBox1.DataBind();
}

我不清楚你遇到了什么問題,因為你沒有完全解釋。 示例中提取的以下代碼中演示了在容器中列出包含分頁支持的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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM