我在Azure中使用AppendBlob
进行日志记录。过了一段时间,我经历了409 Conflict Error
。我的猜测是达到了最大块数/写入次数(50.000)。
有没有办法计算blob中的块/写数?
答案 0 :(得分:3)
在Azure Reference中,您可以找到Blob Service Error Codes表,其中列出了针对Blob服务包含Conflict 409
的操作可能返回的错误代码,请参阅下文。
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
的块计数,该头是{4}中存在的已提交块数。 blob,可用于控制可以完成的附加次数。
对于C#,通过属性AppendBlobCommittedBlockCount
从对象BlobProperties
的{{1}}获取块计数,请参阅参考BlobProperties.AppendBlobCommittedBlockCount Property。
答案 1 :(得分:1)
对于C#,您只需发出appendBlob.Properties.AppendBlobCommittedBlockCount。
的Wissam
答案 2 :(得分:0)
正如Operations on Append blob documentation所述,附加blob类型上唯一的特定可用操作是'追加块' 操作。
然而,您可以从附加阻止操作的x-ms-blob-committed-block-count 响应标头中获取已提交的阻止计数。来自文档:
blob中存在的已提交块数。这可以使用 控制可以完成多少追加。