でのオペレーションの実行Amazon S3オブジェクト - AWS SDK for Java

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

でのオペレーションの実行Amazon S3オブジェクト

Amazon S3 オブジェクトは、ファイルまたはデータの集合を表します。すべてのオブジェクトがバケット内にある必要があります。

注記

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

オブジェクトのアップロード

AmazonS3 クライアントのputObjectメソッドを呼び出して、アップロードするバケット名、キー名、ファイルを指定します。バケットが存在している必要があり、存在しない場合はエラーが発生します

インポート

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3;

コード

System.out.format("Uploading %s to S3 bucket %s...\n", file_path, bucket_name); final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { s3.putObject(bucket_name, key_name, new File(file_path)); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1);

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

オブジェクトのリスト化

バケット内のオブジェクトのリストを取得するには、AmazonS3 クライアントのlistObjectsメソッドを呼び出して、バケット名を指定します。

listObjects メソッドは、バケットのオブジェクトに関する情報を提供する ObjectListing オブジェクトを返します。オブジェクト名 (キー) を一覧表示するには、getObjectSummaries メソッドを使用して、それぞれがバケット内の単一のオブジェクトを表す S3ObjectSummary オブジェクトのリストを取得し、 メソッドを呼び出してオブジェクト名を取得します。それから、getKey メソッドを呼び出してオブジェクト名を取得します。

インポート

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

コード

System.out.format("Objects in S3 bucket %s:\n", bucket_name); final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); ListObjectsV2Result result = s3.listObjectsV2(bucket_name); List<S3ObjectSummary> objects = result.getObjectSummaries(); for (S3ObjectSummary os : objects) { System.out.println("* " + os.getKey()); }

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

オブジェクトのダウンロード

AmazonS3 クライアントのgetObjectメソッドを呼び出して、ダウンロードするバケットの名前とオブジェクトを渡します。成功すると、このメソッドによって S3Object が返されます。指定されたバケットとオブジェクトキーが存在している必要があり、存在しない場合エラーが発生します

オブジェクトのコンテンツは、getObjectContentS3Object を呼び出して取得できます。このメソッドから、ObjectInputStream標準Javaとして動作するInputStreamオブジェクト。

次の例では、S3 からオブジェクトをダウンロードし、そのコンテンツをファイルに保存します (オブジェクトキーと同じ名前を使用)。

インポート

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.S3Object; import com.amazonaws.services.s3.model.S3ObjectInputStream; import java.io.File;

コード

System.out.format("Downloading %s from S3 bucket %s...\n", key_name, bucket_name); final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { S3Object o = s3.getObject(bucket_name, key_name); S3ObjectInputStream s3is = o.getObjectContent(); FileOutputStream fos = new FileOutputStream(new File(key_name)); byte[] read_buf = new byte[1024]; int read_len = 0; while ((read_len = s3is.read(read_buf)) > 0) { fos.write(read_buf, 0, read_len); } s3is.close(); fos.close(); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); } catch (FileNotFoundException e) { System.err.println(e.getMessage()); System.exit(1); } catch (IOException e) { System.err.println(e.getMessage()); System.exit(1);

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

オブジェクトのコピー、移動、または名前の変更

バケット間でオブジェクトをコピーするには、AmazonS3 クライアントのcopyObject方法. コピー元のバケットの名前、コピーするオブジェクト、およびコピー先バケットの名前が継承されます。

インポート

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions;

コード

s3.copyObject(from_bucket, object_key, to_bucket, object_key); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); } System.out.println("Done!");

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

注記

copyObjectdeleteObject とともに使用して、最初にオブジェクトを新しい名前でコピーし (コピー元とコピー先の両方に同じバケットの使用が可能)、元の場所からそのオブジェクトを削除することで、オブジェクトの移動または名前変更ができます。

オブジェクトの削除

AmazonS3 クライアントのdeleteObjectメソッドを呼び出して、削除するバケットの名前とオブジェクトを渡します。指定されたバケットとオブジェクトキーが存在している必要があり、存在しない場合エラーが発生します

インポート

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions;

コード

final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { s3.deleteObject(bucket_name, object_key); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }

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

複数オブジェクトの一括削除

AmazonS3 クライアントのdeleteObjectsメソッドから、SDK-for-java/V1/参照/COM/AmazonAWS/サービス/S3/モデル/DeleteObjectsRequest.html というリンクに名前を渡すことで、同じバケットから複数のオブジェクトを削除できます。方法.

インポート

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3;

コード

final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { DeleteObjectsRequest dor = new DeleteObjectsRequest(bucket_name) .withKeys(object_keys); s3.deleteObjects(dor); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1);

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