メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

AWS SDK for Java を使用したオブジェクトのコピー

以下のタスクは、Java クラスを使用して、Amazon S3 のオブジェクトをコピーする手順を示しています。

オブジェクトのコピー

1

AmazonS3Client クラスのインスタンスを作成します。

2

AmazonS3Client.copyObject メソッドのいずれかを実行します。コピー元のバケット名、コピー元のキー名、コピー先のバケット名、コピー先のキー名などのリクエスト情報を提供する必要があります。このような情報を提供するには、CopyObjectRequest クラスのインスタンスを作成するか、オプションで AmazonS3Client.copyObject メソッドを使用して情報を直接提供します。

以下の Java コード例は、前述のタスクの例です。

Copy
AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider()); s3client.copyObject(sourceBucketName, sourceKey, destinationBucketName, destinationKey);

次の Java サンプルコードは、オブジェクトのコピーを作成します。異なるキーを使ってコピーしたオブジェクトが、同じコピー元バケットに保存されます。作業サンプルを作成およびテストする方法については、「Java コード例のテスト」を参照してください。

Copy
import java.io.IOException; import com.amazonaws.AmazonClientException; import com.amazonaws.AmazonServiceException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.CopyObjectRequest; public class CopyObjectSingleOperation { private static String bucketName = "*** Provide bucket name ***"; private static String key = "*** Provide key *** "; private static String destinationKey = "*** Provide dest. key ***"; public static void main(String[] args) throws IOException { AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider()); try { // Copying object CopyObjectRequest copyObjRequest = new CopyObjectRequest( bucketName, key, bucketName, destinationKey); System.out.println("Copying object."); s3client.copyObject(copyObjRequest); } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, " + "which means your request made it " + "to Amazon S3, but was rejected with an error " + "response for some reason."); System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, " + "which means the client encountered " + "an internal error while trying to " + " communicate with S3, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); } } }