🪣
オブジェクトストレージのオブジェクト、全部消す
概要
さくらのオブジェクトストレージはバケットを削除する際、バケット内のオブジェクト、フォルダを全て削除する必要があります
(参考: 公式FAQ)
しかし、管理画面からオブジェクト、フォルダを一つ一つ消すのは非常に手間がかかります
さくらのオブジェクトストレージは Amazon S3 互換 APIに対応しており、AWS CLIを使って一括削除することができます
本記事では、バケット内のオブジェクトをAWS CLIでまとめて削除する方法を紹介します
事前準備
1. AWS CLIのインストール
公式より一部バージョンで動作不良が報告されています
以下の案内を確認し、対象外バージョンを使用してください
オブジェクトストレージ AWS CLI および AWS SDK ご利用できないバージョンのご案内
2. アクセスキーとパーミッション
READ/WRITE 権限が付与されたアクセスキーとシークレットキーが必要です
作成していない場合は、以下の公式マニュアルを参照してください
手順
1. 初期設定
AWS CLIにさくら用のプロファイルを作成し、READ/WRITE権限のあるパーミッションのアクセスキー、シークレットアクセスキーを設定します
aws configure --profile プロファイル名
入力内容の例:
AWS Access Key ID [None]: アクセスキーを入力
AWS Secret Access Key [None]: シークレットアクセスキーを入力
Default region name [None]: jp-north-1
Default output format [None]: text
2. バケットとオブジェクトを確認
バケット一覧を表示
aws --profile プロファイル名 \
--endpoint-url="https://s3.isk01.sakurastorage.jp" \
s3 ls
削除対象バケット内のオブジェクトを確認
aws --profile プロファイル名 \
--endpoint-url="https://s3.isk01.sakurastorage.jp" \
s3 ls s3://バケット名 --recursive
3. Dry-run で削除対象を確認
誤ったデータを消してしまわないよう、dryrunで確認しましょう
(参考:aws s3 rm - AWS CLI リファレンス)
aws --profile プロファイル名 \
--endpoint-url="https://s3.isk01.sakurastorage.jp" \
s3 rm s3://バケット名 --recursive --dryrun
4. バケット内のオブジェクトを一括削除
削除対象が正しいことを dryrunで確認したら、いよいよ本番です
削除後、オブジェクトは復元できないので注意してください
aws --profile プロファイル名 \
--endpoint-url="https://s3.isk01.sakurastorage.jp" \
s3 rm s3://バケット名 --recursive
まとめ
管理画面で一つずつ削除するのは億劫ですが、AWS CLIを使えば数行のコマンドで一気に削除できます
Discussion