2017-09-12 8 views
-1

バケットが存在するかどうかを確認しています。Javaを使用して `deleteBucket`メソッドを使用して空のS3バケットを削除します

AmazonClientBuilderクラスを使用して、私はdoesBucketExistメソッドを使用してバケットがあるかどうかを確認し、deleteBucketメソッドを使用してそのバケットを削除します。それが存在しない場合はそうです。

注:バケット上のすべての操作を実行するための完全なアクセス権があることを確認しました。

しかし、コードを実行すると、バケット名のみが表示されますが、削除されているかどうかはわかりません。バケツが削除されたかどうかを確認するために、System.out.printlnを実行しています。そのため、バケットが画面上で削除されたことが示されます。

import com.amazonaws.regions.Regions; 
import com.amazonaws.services.s3.AmazonS3; 
import com.amazonaws.services.s3.AmazonS3ClientBuilder; 
import com.amazonaws.services.s3.model.AmazonS3Exception; 

public class DeleteBucket 
{ 
    private static String bucketName = "mycalibucket1"; 
    public static void main(String[] args) 
    { 
     AmazonS3 s3Client = AmazonS3ClientBuilder.standard() 
       .withRegion(Regions.US_WEST_2) 
       .build(); 

     try 
     { 
      if(s3Client.doesBucketExist(bucketName)) 
     { 
      System.out.printf("\n",bucketName," exists"); 
      s3Client.deleteBucket(bucketName); 
      System.out.println("----------------------------------------------"); 
      System.out.printf("\n",bucketName," is deleted."); 
      } 
     } 
     catch(AmazonS3Exception e) 
     { 
      System.out.printf(bucketName," does not exist."); 
      System.exit(1); 
     } 
    } 
} 

OUTPUT:

mycalibucket1

誰かが私を助けることができますか?

+0

log4j/slf4jを使用してロガーを使用してください。代わりに、出力が読みやすくなります – saurabh

答えて

0

2番目と3番目のprint文に達していない場合、コードはAmazonS3Exception以外の例外をスローする必要があります。 APIのjavadocを見てみると

http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3.html#deleteBucket-java.lang.String-

それはあなたがAmazonS3Exceptionから派生どちらも2つの異なる実行時例外をスローする可能性が呼び出しているdeleteBucket方法のように見えます。両方に共通するように見えるcom.amazonaws.AmazonClientExceptionをキャッチしてみてください。それが何を伝えているのかを見て、問題の原因を突き止めることができます。

また、削除するにはバケットを空にする必要があります。

関連する問題