2016-07-07 4 views
2

Ich verwende AppendBlob in Azure für die Protokollierung. Nach einiger Zeit habe ich 409 Conflict Error erlebt. Meine Vermutung ist, dass die maximale Anzahl an Blöcken/Schreibvorgängen (50.000) erreicht wurde.Azure AppendBlob Anzahl der Blöcke/schreibt

Gibt es eine Möglichkeit, die Anzahl der Blöcke/Schreibvorgänge im Blob zu ermitteln?

+0

Überprüfen Sie die HTTP-Statusmeldung (e.RequestInformation.HttpStatusMessage), sie enthält eine detaillierte Fehlermeldung. – yonisha

+0

Danke. Ja, es steht 'Die Anzahl der Blöcke überschreitet die maximal zulässige Grenze. 'Gibt es eine Methode, um die Blockanzahl in Blob mit C# herauszufinden? – azrael

Antwort

3

In Azure Reference Sie die Tabelle der Blob Service Error Codes finden können, die die Fehlercodes Liste kann durch eine Operation gegen die Blob-Service umfasst Conflict 409, siehe unten zurückgeschickt werden.

enter image description here

Die Details für die Maxima von AppendBlob, können Sie auf den wie unten Understanding Block Blobs, Append Blobs, and Page BlobsAbout Append Blobs der Referenzseite Abschnitt.

Jeder Block in einem Append-Blob kann eine andere Größe haben, bis zu 4 MB, und ein Append-Blob kann bis zu 50.000 Blöcke enthalten. Die maximale Größe eines Append-Blobs beträgt daher etwas mehr als 195 GB (4 MB X 50.000 Blöcke).

Wie @yonisha gesagt, bei Verwendung von REST API Append Block, können Sie die Blockanzahl für AppendBlob erhalten über die Header-Antwort erhalten x-ms-blob-committed-block-count, die die Anzahl der engagierten Blöcke in dem Blob und kann verwendet werden, um zu steuern, wie viele mehr Anhänge können getan werden.

für C#, immer die Blockanzahl über die Eigenschaft AppendBlobCommittedBlockCount Form der BlobProperties für das Objekt CloudAppendBlob, finden Sie in Referenz BlobProperties.AppendBlobCommittedBlockCount Property.

0

Wie in den Operations on Append blob documentation geschrieben, ist der einzige spezifische verfügbar Betrieb auf Anhängungstyp die Operation 'anhängen Blockes'.

Dennoch können Sie den engagierten Blockzählbereich vom x-ms-blob-committed-block-countAntwort-Header des Append Blockbetrieb erhalten. Aus der Dokumentation:

Die Anzahl der festgeschriebenen Blöcke im Blob. Dies kann verwendet werden, um zu steuern, wie viele weitere Anhänge möglich sind.

1

Für C# können Sie einfach appendBlob.Properties.AppendBlobCommittedBlockCount ausgeben.

Wissam

+0

Verstand zu erarbeiten? – manetsus