如何通过http访问Azure存储日志?

时间:2015-09-02 11:29:58

标签: azure azure-storage azure-storage-blobs

我看过文献表明您应该能够使用以下网址访问Azure存储容器(somectr)中的日志文件:

http://somectr.blob.core.windows.net/$logs?restype=container&comp=list&prefix=blob/2015/08/28/0900/000000.log

从该日期获取日志文件目录:

http://somectr.blob.core.windows.net/$logs?restype=container&comp=list&prefix=blob/2015/08/

但是当我这样做时,我收到了404错误。我认为这表明该对象没有访问权限。

我可以在Azure存储资源管理器中看到日志文件,甚至可以查看它,但是存储资源管理器不允许我编辑此容器的访问权限(尽管我可以在其他(非系统)容器上)。列出了实际的日志文件,并且存在(我甚至可以使用资源管理器查看它,但我希望http访问它。

我甚至无法在Azure门户或Azure Preveiw门户中看到$ log容器,在那里我可以授予公共访问权限。

我发现错误的参考?是不是可以通过http浏览器访问日志,还是我忽略了什么?

1 个答案:

答案 0 :(得分:2)

您收到此错误的原因是因为$logs容器的ACL设置为Private,因此未经身份验证的请求会因404(未找到)错误而失败。 请将此容器的ACL从Private更改为Blob(或Container),然后您应该可以直接访问日志。

<强>更新

由于$logs是系统生成的容器,因此您无法更改其ACL(这就是为什么当您尝试进行此操作时,您会收到403错误的原因执行此操作)。您需要做的是在此容器上使用Shared Access SignatureRead权限创建List。您只能使用Azure存储资源管理器(请参见下面的屏幕截图)。

enter image description here

要列出该容器中的blob,只需将comp=list&restype=container添加到SAS URL即可。当您将该URL放入浏览器的地址栏时,您应该能够看到blob列表。

   <?xml version="1.0" encoding="utf-8"?>
    <EnumerationResults ServiceEndpoint="http://account.blob.core.windows.net/" ContainerName="$logs">
        <Blobs>
            <Blob>
                <Name>blob/2015/01/16/1300/000000.log</Name>
                <Properties>
                    <Last-Modified>Fri, 16 Jan 2015 13:50:16 GMT</Last-Modified><Etag>0x8D1FFAA7E1ECE77</Etag>
                    <Content-Length>1819</Content-Length>
                    <Content-Type>application/octet-stream</Content-Type>
                    <Content-Encoding />
                    <Content-Language />
                    <Content-MD5 />
                    <Cache-Control />
                    <Content-Disposition />
                    <BlobType>BlockBlob</BlobType>
                    <LeaseStatus>unlocked</LeaseStatus>
                    <LeaseState>available</LeaseState>
                </Properties>
            </Blob>
        </Blobs>
    </EnumartionResults>
...

要查看blob,只需在container name之后和?之前的SAS网址中插入blob名称,如下所示:

  

http://accountname.blob.core.windows.net/ $日志/斑点/ 2015/01 /一千三分之十六/ 000000.log SV = 2014年2月14日&安培; SR = C&安培; SIG = sAmaOtRqXqyedQEfmDGsoCPxGXUUcMO43GhimoPjbxA%3D&安培; ST = 2015-09-01T18 %3A30%3A00Z&安培; SE = 2015-09-09T18%3A30%3A00Z&安培; SP = RL

将此网址粘贴到浏览器的地址栏后,您应该能够看到日志。