Delete Blob

Delete Blob 操作は、指定した BLOB またはスナップショットを削除対象としてマークします。 BLOB は、後でガベージ コレクション中に削除されます。

BLOB を削除するには、そのスナップショットをすべて削除する必要があります。 Delete Blob 操作では、両方を同時に削除できます。

Request

要求は Delete Blob 次のように構築できます。 HTTPS が推奨されます。 myaccount をストレージ アカウントの名前に置き換えます。

DELETE メソッド要求 URI HTTP バージョン
https://myaccount.blob.core.windows.net/mycontainer/myblob

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime>
HTTP/1.1

エミュレートされたストレージ サービス URI

エミュレートされたストレージ サービスに対して要求を行う場合は、エミュレーターのホスト名とAzure Blob Storageポートを次のように127.0.0.1:10000指定し、その後にエミュレートされたストレージ アカウント名を指定します。

DELETE メソッド要求 URI HTTP バージョン
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob HTTP/1.1

詳細については、「 Azure Storage のローカル開発に Azurite エミュレーターを使用する」を参照してください。

URI パラメーター

要求 URI には、次の追加パラメーターを指定できます。

パラメーター 説明
snapshot 省略可能。 snapshot パラメーターは、BLOB のスナップショットが存在する場合に、削除するスナップショットを指定する非透過的な DateTime 値です。 BLOB スナップショットの操作の詳細については、「BLOB の スナップショットの作成」を参照してください。
versionid オプション、バージョン 2019-12-12 以降。 パラメーターは versionid 不透明 DateTime な値であり、存在する場合は、削除する BLOB のバージョンを指定します。
timeout 省略可能。 timeout パラメーターは、秒単位で表されます。 詳細については、「 Blob Storage 操作のタイムアウトの設定」を参照してください。
deletetype オプション、バージョン 2020-02-10 以降。 の deletetype 値は、次の値に限定できます permanent

要求ヘッダー

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

要求ヘッダー 説明
Authorization 必須。 承認スキーム、アカウント名、および署名を指定します。 詳細については、「Azure Storage への要求を承認する」をご覧ください。
Date または x-ms-date 必須。 要求に対して協定世界時 (UTC) を指定します。 詳細については、「Azure Storage への要求を承認する」をご覧ください。
x-ms-version 承認されたすべての要求に必要です。 詳細については、「Azure Storage サービスのバージョン管理」を参照してください。
x-ms-lease-id:<ID> BLOB にアクティブなリースが存在する場合は必須です。

アクティブなリースが存在する BLOB に対してこの操作を実行するには、このヘッダーに有効なリース ID を指定します。 要求で有効なリース ID が指定されていない場合、操作は状態コード 403 (禁止) で失敗します。
x-ms-delete-snapshots: {include, only} BLOB にスナップショットが関連付けられている場合は必須です。 次のいずれかのオプションを指定します。

- include: ベース BLOB とそのすべてのスナップショットを削除します。
- only: BLOB 自体ではなく、BLOB のスナップショットのみを削除します。

このヘッダーは、ベース BLOB リソースに対する要求に対してのみ指定します。 個々のスナップショットを削除する要求でこのヘッダーが指定されている場合、Blob Storage は状態コード 400 (無効な要求) を返します。

このヘッダーが要求で指定されておらず、BLOB にスナップショットが関連付けられている場合、Blob Storage は状態コード 409 (Conflict) を返します。
x-ms-client-request-id 省略可能。 ログ記録の構成時に Azure Monitor ログに記録される 1 kibibyte (KiB) 文字制限を持つ、クライアントによって生成された不透明な値を提供します。 このヘッダーを使用して、クライアント側のアクティビティとサーバーが受信する要求を関連付けすることを強くお勧めします。 詳細については、「Azure Blob Storageの監視」を参照してください。

この操作では、条件ヘッダーを使用して、指定した条件を満たした場合にのみ BLOB を削除することもできます。 詳細については、「 Blob Storage 操作の条件付きヘッダーの指定」を参照してください。

要求本文

[なし] :

[応答]

応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。

status code

操作が正常に終了すると、ステータス コード 202 (Accepted) が返されます。 状態コードの詳細については、「 状態とエラー コード」を参照してください。

応答ヘッダー

この操作の応答には、次のヘッダーが含まれています。 応答には、追加の標準 HTTP ヘッダーを含めることもできます。 すべての標準ヘッダーは 、HTTP/1.1 プロトコル仕様に準拠しています。

応答ヘッダー 説明
x-ms-request-id このヘッダーは、行われた要求を一意に識別し、要求のトラブルシューティングに使用できます。 詳細については、「 API 操作のトラブルシューティング」を参照してください。
x-ms-version 要求の実行に使用される Blob Storage のバージョンを示します。 このヘッダーはバージョン 2009-09-19 以降で行った要求に対して返されます。
x-ms-delete-type-permanent バージョン 2017-07-29 以降では、BLOB が完全に削除されたかどうか、および false BLOB が論理的に削除されたかどうかが Blob Storage から返trueされます。
Date 応答が開始された時刻を示す UTC 日付/時刻値。 この値はサービスによって生成されます。
x-ms-client-request-id このヘッダーを使用して、要求と対応する応答のトラブルシューティングを行うことができます。 このヘッダーの値は、要求に存在する x-ms-client-request-id 場合、ヘッダーの値と同じです。 この値は、最大 1,024 文字の ASCII 文字で表示されます。 ヘッダーが x-ms-client-request-id 要求に存在しない場合、このヘッダーは応答に存在しません。

承認

アカウント所有者は、この操作を実行できます。 さらに、BLOB を削除するアクセス許可を持つ共有アクセス署名を使用するすべてのユーザーがこの操作を実行できます。

解説

BLOB にアクティブなリースが存在する場合に BLOB を削除するには、クライアントは有効なリース ID を要求に指定する必要があります。

BLOB に多数のスナップショットがある場合、操作が Delete Blob タイムアウトする可能性があります。この場合、クライアントは要求を再試行する必要があります。

バージョン 2013-08-15 以降では、クライアントはコミットされていない BLOB を削除するために呼び出 Delete Blob すことができます。 コミットされていない BLOB は、Put Block 操作を呼び出して作成された BLOB ですが、Put Block List 操作を使用してコミットされることはありません。 それ以前のバージョンの場合、クライアントは、BLOB を削除する前にコミットする必要があります。

論理的な削除機能が無効になっている

BLOB が正常に削除されると、ストレージ アカウントのインデックスからすぐに削除され、クライアントからアクセスできなくなります。 BLOB のデータは、後でガベージ コレクション中にサービスから削除されます。

論理的な削除機能が有効になっている

BLOB が正常に削除されると、論理的に削除され、クライアントからアクセスできなくなります。 Blob Storage は、Blob Storage のプロパティに指定された日数だけ BLOB またはスナップショットを DeleteRetentionPolicy 保持します。 Blob Storage のプロパティの読み取りの詳細については、「 Blob Storage のプロパティを設定する」を参照してください。

指定した日数が経過すると、ガベージ コレクション中に BLOB のデータがサービスから削除されます。 論理的に削除された BLOB またはスナップショットにアクセスするには、 BLOB の一覧表示 操作を呼び出し、オプションを include=deleted 指定します。

論理的に削除された BLOB またはスナップショットは、 削除解除 BLOB を使用して復元できます。 論理的に削除された BLOB またはスナップショットに対するその他の操作の場合、Blob Storage はエラー 404 (リソースが見つかりません) を返します。

完全削除

バージョン 2020-02-10 以降では、論理的に削除されたスナップショットまたはバージョンを完全に削除できます。 これを行うには、この機能を有効にします。 詳細については、「 Blob Storage のプロパティを設定する」を参照してください。

注意

ストレージ アカウントでは、バージョン管理またはスナップショットが有効になっている必要があります。 アカウント内の BLOB のバージョンまたはスナップショットを論理的に削除するには、ストレージ アカウントで論理的な削除も有効にする必要があります。 完全削除では、論理的に削除されたスナップショットまたはバージョンのみが削除されます。

完全削除が有効になっているストレージ アカウントでは、クエリ パラメーターを deletetype=permanent 使用して、論理的に削除されたスナップショットまたは削除された BLOB バージョンを完全に削除できます。

クエリ パラメーターに次のいずれかが表示される場合、Blob Storage は 409 エラー (競合) を返します。

  • ストレージ アカウントに対して永続的な削除機能が有効になっていません。
  • どちらもversionidsnapshot提供されていません。
  • 指定されたスナップショットまたはバージョンは論理的に削除されません。

完全削除には、BLOB スナップショットまたは BLOB バージョンを完全に削除するための Shared Access Signature アクセス許可も含まれます。 詳細については、「 サービス SAS の作成」を参照してください。

関連項目

Azure Storage への要求を承認する

状態コードとエラー コード

Blob Storage のエラー コード

BLOB の削除の取り消し

BLOB を一覧表示する