BlobRequestOptions.AbsorbConditionalErrorsOnRetry プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
要求の再試行時に条件付きエラーを吸収するかどうかを示す値を取得または設定します。
public bool? AbsorbConditionalErrorsOnRetry { get; set; }
member this.AbsorbConditionalErrorsOnRetry : Nullable<bool> with get, set
Public Property AbsorbConditionalErrorsOnRetry As Nullable(Of Boolean)
プロパティ値
例
using (MemoryStream inputDataStream = new MemoryStream(inputData))
{
BlobRequestOptions conditionalErrorRequestOptions = new BlobRequestOptions() { AbsorbConditionalErrorsOnRetry = true };
CloudAppendBlob appendBlob = container.GetAppendBlobReference("appendBlob");
appendBlob.UploadFromStream(inputDataStream, accessCondition: null, options: conditionalErrorRequestOptions);
}
注釈
このオプションは、UploadFrom* メソッド、AppendFrom* メソッド、BlobWriteStream クラスのオブジェクトでのみCloudAppendBlob使用されます。 既定では、 に設定 false
されています。 このオプションは、シングルライター シナリオの場合にのみ に true
設定します。 マルチライター シナリオでこのオプションを に true
設定すると、BLOB データが破損する可能性があります。
追加 BLOB で "UploadFrom*" を呼び出すと、ストレージ クライアントは入力データを複数のデータ ブロックに分割し、各データ ブロックを "追加ブロック" 操作でアップロードします。 通常、"IfAppendPositionEqual" アクセス条件が追加ブロック操作に追加されるため、他のプロセスがこのデータ ストリームの途中でデータを追加した場合、アップロード操作は失敗します。 ただし、これにより、非常に具体的なケースで誤ったエラーが発生する可能性があります。 追加操作がタイムアウトで失敗した場合、サービスで操作が成功した可能性がありますが、"成功" 応答によってクライアントに戻されませんでした。 この場合、クライアントは再試行し、"追加位置が満たされていません" というエラーが発生します。
この値を に true
設定すると、再試行時に "追加位置が満たされていません" というエラーが発生したときに、アップロード操作が続行されます。上記の可能性を示します。 ただし、マルチライター シナリオでは保護が失われます。複数のスレッドが一度に BLOB にアップロードされ、この値が に true
設定されている場合は、クライアントがデータがアップロードされたと見なされるため、一部のデータが失われる可能性があります(実際にはもう一方のプロセスのデータだった場合)。
適用対象
Azure SDK for .NET