次の方法で共有


Delete Blob

この操作によりDelete 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 (Bad Request) を返します。

要求でこのヘッダーが指定されておらず、BLOB にスナップショットが関連付けられている場合、Blob Storage は状態コード 409 (競合) を返します。
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 承認できます。

重要

Microsoft では、マネージド ID でMicrosoft Entra IDを使用して、Azure Storage への要求を承認することをお勧めします。 Microsoft Entra IDは、共有キーの承認と比較して優れたセキュリティと使いやすさを提供します。

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ユーザー、グループ、マネージド ID、またはサービス プリンシパルが操作を呼び出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 Storage では、Blob Storage の プロパティに指定された日数だけ BLOB またはスナップショットがDeleteRetentionPolicy保持されます。 Blob Storage のプロパティの読み取りについては、「 Blob Storage のプロパティを設定する」を参照してください。

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

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

完全削除

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

注意

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

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

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

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

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

請求

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

こちらもご覧ください

Azure Storage への要求を承認する

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

Blob Storage のエラー コード

BLOB の削除の取り消し

BLOB を一覧表示する