Oracle Cloudのオブジェクトストレージに作られたバケットのファイルを一掃する


はじめに

本記事はociコマンドラインを用いてOracle Cloudのオブジェクトストレージに作られたバケットのファイルを一掃する方法について記載しています。

例えば、オブジェクトストレージのバケットに大量のファイルをアップロードしていて、不要になった際にコンソール画面から都度選択して削除するのは現実的ではありません。また、Oracle Cloudの仕様でオブジェクトストレージのバケットにファイルが存在する場合、バケット毎削除することもできません。

ociコマンドラインを用いることで大量にアップロードしたファイルを一括で削除することができます。

オブジェクトストレージのバケットのファイル一括削除

ociコマンドラインを実行する場合、APIアクセス用のユーザーの作成や、権限設定等が必要になりますが本記事では割愛します。

オブジェクトストレージのバケットのファイル削除は以下のコマンドを実行します。
--dry-runをつけることで実際に削除する前にテストができます。

$ oci os object bulk-delete -ns <クラウドアカウント> -bn <バケットの名前> --dry-run

データ量が多い場合、レスポンスに時間がかかりますが成功すると、以下の様な出力が行われます。

{
  "delete-failures": {},
  "deleted-objects": [
    "<ファイル名>",
    "<ファイル名>",
    "<ファイル名>",
  ・・・
  ]
}

--dry-runで確認して問題ない場合は、--dry-runを外して実行します。

$ oci os object bulk-delete -ns <クラウドアカウント> -bn <バケットの名前>

警告が表示されるのでyを入力します。

WARNING: This command will delete at least 1000 objects. Are you sure you wish to continue? [y/N]: y

ファイルの削除が行われます。--dry-run実行時より時間がかかるため、後はコマンドの実行結果を待ちます。

Deleted <ファイル名>  [####################################]  100%
Deleted <ファイル名>  [####################################]  100%
Deleted <ファイル名>  [####################################]  100%
・・・
{
  "delete-failures": {},
  "deleted-objects": [
    "<ファイル名>",
  ]
}

おわりに

以上、Oracle Cloudのオブジェクトストレージに作られたバケットのファイルを一掃する方法でした。
ociコマンドラインを用いることで効率よく作業できます。