さくらのオブジェクトストレージで空になったバケットがエラーで消せない問題


オブジェクトを削除してバケットを消そうとするとエラー

MultipartUploadsRemaining, Multipart uploads remain, delete them beforehand.

マルチパートアップロードの不要なファイルが残っているので消してくださいとの事


AWS CLIインストール

適当なLinuxサーバを用意して「AWS CLI」の最新版をインストールします。

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install

AWS CLIの初期設定

$ aws configure

AWS Access Key ID [None]: さくらのアクセスキーを入力
AWS Secret Access Key [None]: さくらのシークレットアクセスキーを入力
Default region name [None]: "jp-north-1" を入力
Default output format [None]: "json" を入力

AWS CLIの動作確認

バケット一覧の確認

$ aws --endpoint-url=https://s3.isk01.sakurastorage.jp s3 ls

オブジェクトの確認

※バケット名を「my_bucket_name」から各自指定のものに変更してください。

$ aws --endpoint-url=https://s3.isk01.sakurastorage.jp s3 ls s3://my_bucket_name/ --summarize --recursive

オブジェクト数は0個と表示されるのを確認


マルチパートアップロードの不要なファイルを削除

マルチパートアップロードのファイル一覧を表示

$ aws s3api list-multipart-uploads --bucket my_bucket_name --endpoint-url=https://s3.isk01.sakurastorage.jp

表示された値から以下の項目をメモする

"UploadId": "xxxxxxxxxxxxxxxxx",
"Key": "file_name.txt",

メモした内容を使って不要なファイルを削除

$ aws s3api abort-multipart-upload --bucket my_bucket_name \
 --key "file_name.txt" \
 --upload-id "xxxxxxxxxxxxxxxxx" \
 --endpoint-url=https://s3.isk01.sakurastorage.jp

すべての不要なファイルを削除したら、さくらインターネットのコントロールパネルからバケットを削除する!(APIは用意されていない為)