このトピックでは、不要になったオブジェクト、パート、またはバケットを削除して、不要な課金を回避するために rm コマンドを実行する方法について説明します。
注意事項
単一のオブジェクトを削除するには、
oss:DeleteObject権限が必要です。ディレクトリ内のすべてのオブジェクトを削除するには、oss:DeleteObject権限およびoss:ListObjects権限が必要です。特定のオブジェクトバージョンを削除するには、oss:DeleteObjectVersion権限が必要です。バケット内のすべてのオブジェクトバージョンを削除するには、oss:ListObjectVersions権限およびoss:DeleteObjectVersion権限が必要です。ディレクトリ内のすべてのオブジェクトバージョンを削除するには、oss:DeleteObjectVersion権限およびoss:ListObjects権限が必要です。オブジェクトのパートを削除するには、oss:ListMultipartUploads権限およびoss:AbortMultipartUpload権限が必要です。バケット内のすべてのオブジェクトおよびパートを削除するには、oss:ListMultipartUploads、oss:AbortMultipartUpload、oss:ListObjects、およびoss:DeleteObjectの各権限が必要です。バケットを削除するには、oss:DeleteBucket権限が必要です。ossutil バージョン 1.6.16 以降では、コマンドラインでバイナリ名として直接 ossutil を使用できます。オペレーティングシステムに応じてバイナリ名を更新する必要はありません。ossutil バージョン 1.6.16 より前の場合は、オペレーティングシステムに応じてバイナリ名を更新する必要があります。詳細については、「ossutil コマンド リファレンス」をご参照ください。
コマンド構文
ossutil rm oss://bucketname[/prefix]
[-r, --recursive]
[-b, --bucket]
[-m, --multipart]
[-a, --all-type]
[-f, --force]
[--include <value>]
[--exclude <value>]
[--version-id <value>]
[--all-versions]
[--payer <value>]
[--encoding-type <value>]以下の表に、構文内のパラメーターおよびオプションについて説明します。
パラメーター/オプション | 説明 |
bucketname | バケットの名称です。 |
prefix | リソース(例:ディレクトリやオブジェクト)の名称におけるプレフィックスです。 |
-r, --recursive | このオプションを指定すると、ossutil はバケット内において指定されたプレフィックスを含む名称を持つすべてのオブジェクトを削除します。このオプションを指定しない場合、ossutil は指定されたオブジェクトのみを削除します。 |
-b, --bucket | このコマンドがバケットを削除することを指定します。バケットを削除する場合にのみ、このオプションを指定する必要があります。 |
-m, --multipart | この操作を、バケット内の未完了のマルチパートアップロードタスクに対して実行することを指定します。 |
-a, --all-type | この操作を、指定されたプレフィックスを含む名称を持つオブジェクトおよびバケット内の未完了のマルチパートアップロードタスクによって生成されたデータに対して実行することを指定します。 |
-f, --force | 確認を省略して操作を強制的に実行します。 |
--include | 指定された条件を満たすすべてのオブジェクトを対象に含めます。 詳細については、「--include および --exclude オプション」をご参照ください。 |
--exclude | 指定された条件を満たすすべてのオブジェクトを対象から除外します。 詳細については、「--include および --exclude オプション」をご参照ください。 |
--version-id | オブジェクトのバージョン ID です。このパラメーターは、バージョン管理が有効化されているか、または一時停止されているバケットにのみ適用されます。 |
--all-versions | オブジェクトのすべてのバージョンを指定します。このオプションは、バージョン管理が有効化または一時停止されているバケット内のオブジェクトにのみ適用されます。--version-id および --all-versions のいずれか一方のみを、単一の rm コマンドで指定できます。 |
--payer | この操作によって発生する料金の支払者です。指定されたパス内のリソースにアクセスするリクエスターが、トラフィック料金およびリクエスト料金などのこの操作による料金を負担するようにするには、このパラメーターを requester に設定します。 |
--encoding-type |
|
オブジェクトの削除
オブジェクトを削除すると、復元できません。操作には十分ご注意ください。
rm コマンドを -r オプション付きまたは無しで使用して 1 つ以上のオブジェクトを削除すると、ListObjects (GetBucket) および DeleteObject の各 API オペレーションが呼び出されます。この場合、PUT リクエスト送信に対して課金されます。詳細については、「API オペレーション呼び出し料金」をご参照ください。
rm コマンドで --include および --exclude オプションを併用してオブジェクトを削除する場合、条件設定の不備により誤ってオブジェクトが削除される可能性があります。rm コマンドで両方のオプションを併用する場合は、十分にご注意ください。
--include オプションおよび --exclude オプションには、複数の条件を指定できます。すべての条件は左から順に適用されてオブジェクトと照合されます。複数の条件を指定する場合は、--include オプションを --exclude オプションより先に指定することを推奨します。
例
単一のオブジェクトの削除
バケット名が examplebucket のバケットから、オブジェクト名が exampleobject.txt のオブジェクトを削除します。
ossutil rm oss://examplebucket/exampleobject.txtバケット名が examplebucket のバケットから、名称に「test」プレフィックスを含むすべてのオブジェクトを削除します。
ossutil rm oss://examplebucket/test -rバケット名が examplebucket のバケットから、名称に「.png」サフィックスを含むすべてのオブジェクトを削除します。
ossutil rm oss://examplebucket --include "*.png" -rバケット名が examplebucket のバケットから、名称に文字列「abc」を含み、かつ「.jpg」または「.txt」サフィックスを含まないオブジェクトを削除します。
ossutil rm oss://examplebucket --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -rバージョン管理が有効化されたバケット examplebucket から、オブジェクト名が exampleobject.txt の特定のバージョンを削除します。
ossutil rm oss://examplebucket/exampleobject.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****オブジェクトのすべてのバージョンを取得する方法については、「ls」をご参照ください。
バージョン管理が有効化されたバケット examplebucket から、オブジェクト名が exampleobject.txt のすべてのバージョンを削除します。
ossutil rm oss://examplebucket/exampleobject.txt --all-versionsバージョン管理が有効化されたバケット examplebucket から、すべてのオブジェクトのすべてのバージョンを削除します。
ossutil rm oss://examplebucket --all-versions -r
実行結果の例
成功時の応答には、削除されたオブジェクト数および削除操作の完了に要した時間が含まれます。
Succeed: Total 8 objects. Removed 8 objects. 0.106852(s) elapsed
パートの削除
rm コマンドを複数のオプション付きで使用してパートを削除すると、ListMultipartUploads、ListParts、および AbortMultipartUpload の各 API オペレーションが呼び出されます。この場合、ListMultipartUploads および ListParts の呼び出し時に GET リクエスト送信に対して、また AbortMultipartUpload の呼び出し時に PUT リクエスト送信に対してそれぞれ課金されます。詳細については、「API オペレーション呼び出し料金」をご参照ください。
例
バケット名が examplebucket のバケットから、オブジェクト名が exampleobject.txt の未完了のマルチパートアップロードタスクによって生成されたパートを削除するために、コマンドに -m オプションを指定します。
ossutil rm -m oss://examplebucket/exampleobject.txtバケット名が examplebucket のバケットから、名称に「test」プレフィックスを含むオブジェクトの未完了のマルチパートアップロードタスクによって生成されたパートを再帰的に削除するために、コマンドに -m オプションおよび -r オプションを指定します。
ossutil rm -m oss://examplebucket/test -r Do you really mean to remove recursively multipart uploadIds of oss://examplebucket/test(y or N)? yバケット名が examplebucket のバケットから、名称に「src」プレフィックスを含むオブジェクトおよびそれらのオブジェクトの未完了のマルチパートアップロードタスクによって生成されたパートを再帰的に削除するために、コマンドに -a オプションおよび -r オプションを指定します。
ossutil rm oss://examplebucket/src -a -r Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket/src(y or N)? y
応答の例
成功時の応答には、削除されたオブジェクト数、削除されたパートを生成したマルチパートアップロードタスク数、および削除操作の完了に要した時間が含まれます。
Succeed: Total 1 objects, 3 uploadIds. Removed 1 objects, 3 uploadIds. 1.922915(s) elapsed
バケットの削除
オブジェクトおよびパートを含まない examplebucket バケットを削除します。
ossutil rm oss://examplebucket -b Do you really mean to remove the Bucket: examplebucket(y or N)? y成功時の応答には、削除されたバケット名およびバケット削除に要した時間が含まれます。
Removed Bucket: examplebucket 2.230745(s) elapsedexamplebucket という名前のバケットおよびそのバケット内のすべてのオブジェクトおよびパートを削除します。
警告次のコマンドを実行すると、バケット内のすべてのデータが削除され、削除されたデータは回復できません。操作には十分ご注意ください。
ossutil rm oss://examplebucket -b -a -r Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket(y or N)? y Do you really mean to remove the Bucket: examplebucket(y or N)? y成功時の応答には、削除されたオブジェクト数、削除されたパートを生成したマルチパートアップロードタスク数、削除されたバケット名、および削除操作の完了に要した時間が含まれます。
Succeed: Total 189 objects, 37 uploadIds. Removed 189 objects, 37 uploadIds. Removed Bucket: examplebucket 9.184193(s) elapsed
共通オプション
別のリージョンにあるバケットに ossutil を使用してアクセスする場合は、-e オプションを追加して、バケットのリージョンのエンドポイントを指定します。別の Alibaba Cloud アカウントに属するバケットに ossutil を使用してアクセスする場合は、-i オプションを追加してアカウントの AccessKey ID を指定し、-k オプションを追加して AccessKey Secret を指定します。
たとえば、中国 (上海) リージョンにあり、別の Alibaba Cloud アカウントに属する testbucket という名前のバケットから、exampletest.png という名前のオブジェクトを削除するには、次のコマンドを実行します。
ossutil rm oss://testbucket/exampletest.png -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecretこのコマンドの他の共通オプションについては、「共通オプション」をご参照ください。
よくあるエラー
次の表に、rm コマンドを使用する際に発生する可能性のあるよくあるエラーについて説明します。
エラー | 原因 | 解決方法 |
| 権限が不足しています。 | RAM 権限を確認してください。 |
| バケットのリージョンに対するエンドポイントが正しくありません。 | 正しいエンドポイント形式を使用してください。「共通オプション」をご参照ください。 |
| オプションの値が無効です。 |
|
参考情報: HTTP 403 エラーコード、 HTTP 400 エラーコード