$ logs容器中的listblobs

我们有一个天蓝色的blob存储,启用日志记录。 我可以查看这些日志并使用管理门户下载斑点。 但现在我试图使用客户端API列出这些日志。 沿线的一些东西:

let account = new CloudStorageAccount(credentials, true)
let client = account.CreateCloudBlobClient()
let container = client.GetContainerReference "$logs"
container.ListBlobs()

但是这会抛出一个web异常代码400 Bad Request 。 我可以。 但是,请列出此客户端上其他容器的blob。 我知道我需要为这个容器进行身份验证,但我使用主要访问密钥作为凭据。 那么,为什么我不能得到$ log blob?

谢谢


正如我在上面的评论中提到的那样,您需要使用可从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函数。 如果你在这里查看这个函数的定义(http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.windowsazure.storage.blob.cloudblobcontainer.listblobs.aspx),你会看到你可以通过指定useFlatBlobListing参数为true(我在上面的代码中完成)来获取Blob容器中的所有Blob。 不妨尝试一下,它会返回blob容器中所有斑点的列表。

链接地址: http://www.djcxy.com/p/66103.html

上一篇: listblobs in $logs container

下一篇: Culling/Managing Azure Log Files / Failed Request Logs in Blob Storage