上記のコメントで述べたように、Nuget ( http://nuget.org/packages/WindowsAzure.Storage/ ) から取得できるストレージ クライアント ライブラリの最新バージョンを使用する必要があります。
サンプルコードは次のとおりです。
open Microsoft.WindowsAzure.Storage
open Microsoft.WindowsAzure.Storage.Auth
open Microsoft.WindowsAzure.Storage.Blob
[<EntryPoint>]
let main argv =
let credentials = new StorageCredentials("accountname", "accountkey")
System.Console.WriteLine(credentials.AccountName)
let account = new CloudStorageAccount(credentials, true)
System.Console.WriteLine(account.BlobEndpoint)
let client = account.CreateCloudBlobClient();
let container = client.GetContainerReference "$logs"
System.Console.WriteLine(container.Uri)
let blobs = container.ListBlobs("", true, BlobListingDetails.All, null, null);
for blob in blobs do
System.Console.WriteLine(blob.Uri)
let response = System.Console.ReadLine()
0 // return an integer exit code
上記のコードには Storage Client Library 2.0 が必要です。
ListBlobs
アイテムが 1 つしか返されないのは、パラメーターなしで関数を呼び出しているためです。ここ ( http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.windowsazure.storage.blob.cloudblobcontainer.listblobs.aspx ) でこの関数の定義を見ると、useFlatBlobListing
パラメーターを trueに指定することで、BLOB コンテナー内のすべての BLOB を取得できます (上記のコードでこれを行いました)。試してみてください。BLOB コンテナー内のすべての BLOB のリストが返されます。