2016-07-07 16 views
2

我在Azure中使用AppendBlob进行日志记录。一段时间后,我经历了409 Conflict Error。我的猜测是达到了最大数量的块/写入(50.000)。Azure AppendBlob数据块/写入

是否有任何方法可以获得blob中的块/写入次数?

+0

检查http状态消息(e.RequestInformation.HttpStatusMessage),它包含详细的错误消息。 – yonisha

+0

谢谢。是的,它说'块数超过了最大允许限制。是否有任何方法可以用C#找出blob中的块数? – azrael

回答

3

Azure Reference,你可以找到的Blob Service Error Codes其中列出了错误代码表可以通过对Blob服务包括Conflict 409操作退还,请参见下文。

enter image description here

AppendBlob的最大值的细节,你可以参考参考页Understanding Block Blobs, Append Blobs, and Page Blobs下面的部分About Append Blobs

附加blob中的每个块可以是不同的大小,最大为4 MB,并且附加blob最多可以包含50,000个块。因此追加blob的最大尺寸略大于195 GB(4 MB X 50,000块)。

正如@yonisha说,如果使用的REST API Append Block,就可以得到该块计数AppendBlob经由获取响应头x-ms-blob-committed-block-count这是致力于块中存在的斑点的数量和能够用于控制多少可以做更多的附加。

对于C#,通过属性AppendBlobCommittedBlockCount形式BlobProperties为对象CloudAppendBlob获取块计数,请参阅参考BlobProperties.AppendBlobCommittedBlockCount Property

1

对于C#,您只需发出appendBlob.Properties.AppendBlobCommittedBlockCount即可。

的Wissam

+0

介意详细说明一下? – manetsus