2015-07-13 31 views
0

我有一個對所有人都公開的天藍色容器,我想檢索該公共容器中存在的文件名。無法從azure blob容器獲取文件名

這是我的代碼。

// Retrieve storage account from connection string. 
var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["AzureWebJobsStorage"].ToString()); 

// Create the blob client. 
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 

// Retrieve reference to a previously created container. 
CloudBlobContainer container = blobClient.GetContainerReference(sourceurl); //my path from where i have to get filename 

//here i got 400 bad request error. 
var blobs = container.ListBlobs(null, true, BlobListingDetails.All).Cast<CloudBlockBlob>().ToList(); 
foreach (var blockBlob in blobs) 
{ 
    Console.WriteLine("Name: " + blockBlob.Name); 
    Console.WriteLine("Size: " + blockBlob.Properties.Length); 
    Console.WriteLine("Content type: " + blockBlob.Properties.ContentType); 
    Console.WriteLine("Download location: " + blockBlob.Uri); 
    Console.WriteLine("======================================="); 
} 
+0

'sourceurl'的價值是什麼? –

+0

sourceurl是我從哪裏訪問我的文件的完整容器地址。例如:「vcmob​​ilesiteiislogs/VCMOBILESITE/2015/07/10/10 /」 –

+0

因此,您的容器名稱爲'vcmob​​ilesiteiislogs',並且您想要從VCMOBILESITE/2015/07/10/10 /'文件夾中提取文件。正確? –

回答

0

根據您的意見,請改變你的代碼,類似以下內容:

CloudBlobContainer container = blobClient.GetContainerReference("vcmobilesiteiislogs"); 
var blobs = container.ListBlobs("VCMOBILESITE/2015/07/10/10/", true, BlobListingDetails.All).Cast<CloudBlockBlob>().ToList(); 

本質vcmobilesiteiislogs是你的容器,你想獲取斑點的名字,其中開始VCMOBILESITE/2015/07/10/10/(或其他儘管我必須指出blob存儲沒有文件夾的概念,但您只需通過在blob前添加一個名稱來創建文件夾層次結構的錯覺即可)。

因此,當您在容器上調用ListBlobs方法時,您將傳遞VCMOBILESITE/2015/07/10/10/作爲blob前綴。

+0

是的它的工作,謝謝你的解決方案 –

相關問題