27375
S3のバケットを削除する必要があり、下記の処理をコマンドで実行したいです。

  1. S3の管理画面からversionをhideからshowに変えて全てのバージョンを表示（<http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/UG/managing-objects-versioned-bucket.html> を参考）
  2. 全てのファイルを選択して削除
  3. 空になったバケットを削除

awsコマンドで下記を実行してみたのですが、まだファイルが残っていて、全てのバージョンを削除して欲しいとエラーが返ってきます。

```

    $ aws rm s3://(バケット名) --recursive
    $ aws rb s3://(バケット名) --force
    
    remove_bucket failed: s3://(バケット名)/ An error occurred (BucketNotEmpty) when calling the DeleteBucket operation: The bucket you tried to delete is not empty. You must delete all versions in the bucket.
    
```

管理画面を見てもlsコマンドを打っても空ですが、管理画面のversionを表示に切り替えると見えるのでこのファイルの事だと思います。  
（削除ファイルが大きいせいか、現在も削除中で終わりが見えていません。）

rmコマンドには、バージョンを指定するオプションはありません。  
他の方法があるのでしょうか？
CC BY-SA 3.0
2016-07-05T03:47:11.823
27346
2016-07-18T11:35:25.317
17060
question
aws amazon-s3
AWSCLIで、s3のバケット内にある全バージョンのファイルを削除するコマンドはありますか？
バージョンを有効にしたS3バケットを削除する際は、ライフサイクル設定により全バージョンファイルが消えるよう設定する必要があります。

<https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/delete-or-empty-
bucket.html#delete-bucket-lifecycle>

S3コンソールのbucketのプロパティからライフサイクルの設定でprefixを空欄（バケット全体でもたぶんOK）、日数1でオブジェクト生成後１日たっているファイルがすべて削除されます。  
※以前のバージョンは上書き実行日/有効期限終了日から 1 日後

このライフサイクル設定はコマンドラインからも設定可能です。

<http://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-
lifecycle.html>

```

    aws s3api put-bucket-lifecycle --bucket ${backet_name} --lifecycle-configuration file://lifecycle.json
    
```

lifecycle.jsonは以下のようになります。

```

    {
      "Rules": [
        {
          "Expiration": {
            "Days": 1
          },
          "NoncurrentVersionExpiration": {
            "NoncurrentDays": 1
          },
          "ID": "Delete all",
          "Prefix": "",
          "Status": "Enabled"
        }
      ]
    }
    
```

上記設定で全ファイルが消えれば普通にバケットを削除できます。

今のところ1日後設定が最速のようですが、Python等の言語からAPIを呼び出して削除する方法もあるようです。

コード例が以下の質問の回答にあります。（英語ですがコード例は問題ないかと）

<https://stackoverflow.com/questions/29809105/how-do-i-delete-a-versioned-
bucket-in-aws-s3-using-the-cli>
CC BY-SA 3.0
2016-07-06T07:20:13.590
27375
2016-07-18T11:35:25.317
2017-05-23T12:38:55.307
-1
382
27346
answer