我在Azure中使用AppendBlob
进行日志记录。一段时间后,我经历了409 Conflict Error
。我的猜测是达到了最大数量的块/写入(50.000)。Azure AppendBlob数据块/写入
是否有任何方法可以获得blob中的块/写入次数?
我在Azure中使用AppendBlob
进行日志记录。一段时间后,我经历了409 Conflict Error
。我的猜测是达到了最大数量的块/写入(50.000)。Azure AppendBlob数据块/写入
是否有任何方法可以获得blob中的块/写入次数?
在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
这是致力于块中存在的斑点的数量和能够用于控制多少可以做更多的附加。
对于C#,通过属性AppendBlobCommittedBlockCount
形式BlobProperties
为对象CloudAppendBlob
获取块计数,请参阅参考BlobProperties.AppendBlobCommittedBlockCount Property。
作为写入Operations on Append blob documentation,唯一特定可在追加BLOB类型操作是“附加块”操作。
不过,你可以从附加块操作的x-ms-blob-committed-block-count响应头得到承诺块数。从文档:
blob中存在的已提交块的数量。这可以用来控制可以完成多少次附加操作。
检查http状态消息(e.RequestInformation.HttpStatusMessage),它包含详细的错误消息。 – yonisha
谢谢。是的,它说'块数超过了最大允许限制。是否有任何方法可以用C#找出blob中的块数? – azrael