作成、一覧表示、および削除Amazon S3バケット - AWS SDK for Java

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

作成、一覧表示、および削除Amazon S3バケット

Amazon S3 の各オブジェクト (ファイル) は、オブジェクトのコレクション (コンテナ) を表すバケット内に存在している必要があります。各バケットはキー (名前) で識別され、それは一意である必要があります。バケットとその設定の詳細については、「」を参照してください。の使用Amazon S3バケットのAmazon Simple Storage Serviceユーザーガイド。

注記

ベストプラクティス

バケットで AbortIncompleteMultipartUploadAmazon S3 ライフサイクルルールを有効にすることをお勧めします。

このルールは、開始後、指定された日数内に完了しないマルチパートアップロードを中止するよう Amazon S3 に指示できます。設定した時間制限を超えると、Amazon S3 はアップロードを中止して、不完全なアップロードデータを削除します。

詳細については、「」を参照してください。バージョニングが有効なバケットのライフサイクル設定のAmazon S3ユーザーガイド。

注記

これらのコード例は、の資料を理解していることを前提としています。の使用AWS SDK for Javaデフォルトを設定しているAWSの情報を使用する認証情報セットアップAWS開発用の認証情報とリージョン

バケットの作成

AmazonS3 クライアントを使用するcreateBucket方法。新しいバケットが返されます。createBucket メソッドでは、バケットが既に存在する場合、例外が発生します。

注記

同じ名前のバケットを作成する前にバケットが既に存在するかどうかを確認するには、doesBucketExist メソッドを呼び出してください。バケットが存在する場合は true を返し、それ以外の場合は false を返します。

インポート

import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.Bucket; import java.util.List;

Code

if (s3.doesBucketExistV2(bucket_name)) { System.out.format("Bucket %s already exists.\n", bucket_name); b = getBucket(bucket_name); } else { try { b = s3.createBucket(bucket_name); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); } } return b;

GitHub で完全な例をご覧ください。

バケットの一覧表示

AmazonS3 クライアントを使用するlistBucket方法。成功すると、バケットのリストが返されます。

インポート

import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.Bucket; import java.util.List;

Code

List<Bucket> buckets = s3.listBuckets(); System.out.println("Your {S3} buckets are:"); for (Bucket b : buckets) { System.out.println("* " + b.getName()); }

GitHub で完全な例をご覧ください。

バケットの削除

Amazon S3 バケットを削除する前に、バケットが空であることを必ず確認してください。空になっていないとエラーが発生します。バージョニングされたバケットがある場合は、このバケットに関連付けられているすべてのバージョニングされたオブジェクトも削除する必要があります。

注記

完全な例には、これらの各ステップが順に含まれており、Amazon S3 バケットとそのコンテンツを削除するための完全なソリューションを提供しています。

バケットを削除する前にバージョニングされていないバケットからオブジェクトを削除する

AmazonS3 クライアントを使用するlistObjectsオブジェクトのリストを取得するメソッドとdeleteObjectをクリックして、それぞれを削除します。

インポート

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.*; import java.util.Iterator;

Code

System.out.println(" - removing objects from bucket"); ObjectListing object_listing = s3.listObjects(bucket_name); while (true) { for (Iterator<?> iterator = object_listing.getObjectSummaries().iterator(); iterator.hasNext(); ) { S3ObjectSummary summary = (S3ObjectSummary) iterator.next(); s3.deleteObject(bucket_name, summary.getKey()); } // more object_listing to retrieve? if (object_listing.isTruncated()) { object_listing = s3.listNextBatchOfObjects(object_listing); } else { break; } }

GitHub で完全な例をご覧ください。

バケットを削除する前にバージョニングされているバケットからオブジェクトを削除する

バージョニングされたバケットを使用している場合は、バケットを削除する前に、バケットに保存されているすべてのバージョンのオブジェクトも削除する必要があります。

バケット内のオブジェクトを削除する際に使用したのと同じような方法で、AmazonS3 クライアントを使用してバージョニングされたオブジェクトを削除します。listVersionsメソッドを使用してバージョン管理されたオブジェクトを一覧表示し、deleteVersionをクリックして、それぞれを削除します。

インポート

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.*; import java.util.Iterator;

Code

System.out.println(" - removing versions from bucket"); VersionListing version_listing = s3.listVersions( new ListVersionsRequest().withBucketName(bucket_name)); while (true) { for (Iterator<?> iterator = version_listing.getVersionSummaries().iterator(); iterator.hasNext(); ) { S3VersionSummary vs = (S3VersionSummary) iterator.next(); s3.deleteVersion( bucket_name, vs.getKey(), vs.getVersionId()); } if (version_listing.isTruncated()) { version_listing = s3.listNextBatchOfVersions( version_listing); } else { break; } }

GitHub で完全な例をご覧ください。

空のバケットを削除する

バケットからオブジェクト (すべてのバージョニングされたオブジェクトを含む) を削除したら、AmazonS3 クライアントを使用してバケット自体を削除できます。deleteBucket方法。

インポート

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.*; import java.util.Iterator;

Code

System.out.println(" OK, bucket ready to delete!"); s3.deleteBucket(bucket_name);

GitHub で完全な例をご覧ください。