[解決済み] AWS S3のバージョン管理されたバケットをCLIで削除する方法を教えてください。
2023-01-26 04:37:47
質問
私は
s3cmd
:
$ s3cmd -r -f -v del s3://my-versioned-bucket/
そして、AWS CLI。
$ aws s3 rm s3://my-versioned-bucket/ --recursive
しかし、これらのコマンドは両方とも単に
DELETE
マーカーを S3 に追加するだけです。バケットを削除するコマンドも(AWS CLIから)うまくいきません。
$ aws s3 rb s3://my-versioned-bucket/ --force
Cleaning up. Please wait...
Completed 1 part(s) with ... file(s) remaining
remove_bucket failed: s3://my-versioned-bucket/ A client error (BucketNotEmpty) occurred when calling the DeleteBucket operation: The bucket you tried to delete is not empty. You must delete all versions in the bucket.
OK...どうやって?の中に情報はありません。 のドキュメントには情報がありません。 には情報がありません。S3Cmdは'全機能を備えた'S3コマンドラインツールだと言っていますが、そのために バージョンへの言及はありません を参照しない。ウェブ インターフェイスを使用せずにこれを行う方法はありますか?これは、時間がかかり、ラップトップをオンにしておく必要があります。
どのように解決するのですか?
一つの方法は、バージョンを繰り返し、それらを削除することです。CLI では少しトリッキーですが、Java に言及されているように、そちらの方が簡単でしょう。
AmazonS3Client s3 = new AmazonS3Client();
String bucketName = "deleteversions-"+UUID.randomUUID();
//Creates Bucket
s3.createBucket(bucketName);
//Enable Versioning
BucketVersioningConfiguration configuration = new BucketVersioningConfiguration(ENABLED);
s3.setBucketVersioningConfiguration(new SetBucketVersioningConfigurationRequest(bucketName, configuration ));
//Puts versions
s3.putObject(bucketName, "some-key",new ByteArrayInputStream("some-bytes".getBytes()), null);
s3.putObject(bucketName, "some-key",new ByteArrayInputStream("other-bytes".getBytes()), null);
//Removes all versions
for ( S3VersionSummary version : S3Versions.inBucket(s3, bucketName) ) {
String key = version.getKey();
String versionId = version.getVersionId();
s3.deleteVersion(bucketName, key, versionId);
}
//Removes the bucket
s3.deleteBucket(bucketName);
System.out.println("Done!");
また、必要であれば、効率化のために呼び出しを一括削除することもできます。
関連
-
[解決済み】あなたのWSGIPathは、存在しないファイルを参照しています。
-
[解決済み] -bash: aws: コマンドが見つかりませんでした。
-
[解決済み] SNS/SMSのログはどこにありますか?クラウドウォッチ空
-
[解決済み] ec2 インスタンスのステータスチェックに失敗しました
-
[解決済み] G.1XおよびG.2XのAWS Glue Workerの価格詳細について
-
[解決済み] DynamoDB Upsert - Update or Create?
-
[解決済み] AWS SNSとAWS SQSのFIFOキューを統合することは可能か?
-
[解決済み] CLIコマンドでAWSグルージョブを作成する方法とは?
-
[解決済み] Terraform AWS Provider の有効なクレデンシャルソースが見つかりません。
-
[解決済み】FilezillaとSFTPを使用してAmazon EC2のファイルディレクトリに接続する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] s3 - HeadObject 操作を呼び出すときに、エラーが発生しました (403)。Forbidden
-
[解決済み] LATERAL VIEW EXPLODE in presto(ラテラルビュー エクスプロード イン プレスト
-
[解決済み] AWS Secrets Managerで指定された秘密が見つからない
-
[解決済み] ec2 インスタンスのステータスチェックに失敗しました
-
[解決済み] タスク実行時にAWS ECSエラーが発生しました。クラスタにコンテナインスタンスが見つかりませんでした。
-
[解決済み] CLOUDFRONT EC2オリジンエラー CloudFrontはオリジンとの接続を確立しようとしました[重複]。
-
[解決済み] s3バケットから複数ファイルをコピーする
-
[解決済み] AWS CLIツールからAWSアカウント番号を取得する簡単な方法とは?
-
[解決済み] amazon dynamodbのパーティションキーとソートキーの違いは何ですか?
-
[解決済み】Amazon EC2とAWS Elastic Beanstalkの違いについて