Delete Blob

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

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

要求

要求は 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 省略可能。 ログ記録の構成時にログに記録される 1 kibibyte (KiB) 文字制限を使用して、クライアントによって生成された不透明な値を提供します。 このヘッダーを使用して、クライアント側のアクティビティとサーバーが受信する要求を関連付けるよう強くお勧めします。 詳細については、「Azure Blob Storageの監視」を参照してください。

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

要求本文

[なし] :

Response

応答には、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 要求に存在しない場合、このヘッダーは応答に存在しません。

承認

Azure Storage でデータ アクセス操作を呼び出す場合は、承認が必要です。 操作は、以下で Delete Blob 説明するように承認できます。

Azure Storage では、Microsoft Entra ID を使用して BLOB データへの要求を承認することがサポートされています。 Microsoft Entra IDでは、Azure ロールベースのアクセス制御 (Azure RBAC) を使用して、セキュリティ プリンシパルにアクセス許可を付与できます。 セキュリティ プリンシパルには、ユーザー、グループ、アプリケーション サービス プリンシパル、または Azure マネージド ID を指定できます。 セキュリティ プリンシパルは、OAuth 2.0 トークンを返すためにMicrosoft Entra IDによって認証されます。 その後、そのトークンを、Blob service に対する要求を認可するために使用できます。

Microsoft Entra IDを使用した承認の詳細については、「Microsoft Entra IDを使用して BLOB へのアクセスを承認する」を参照してください。

アクセス許可

次に、Microsoft Entraユーザー、グループ、またはサービス プリンシパルが操作を呼び出Delete Blobすために必要な RBAC アクションと、このアクションを含む最小特権の組み込み Azure RBAC ロールを示します。

Azure RBAC を使用したロールの割り当ての詳細については、「 BLOB データにアクセスするための Azure ロールの割り当て」を参照してください。

注釈

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

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

バージョン 2013-08-15 以降の場合、クライアントは を呼び出 Delete Blob してコミットされていない 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 エラー (Conflict) を返します。

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

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

請求

ストレージ アカウントは、要求に対して Delete Blob 課金されません。

こちらもご覧ください

Azure Storage への要求を承認する

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

Blob Storage のエラー コード

BLOB の削除の取り消し

BLOB を一覧表示する