s3バケット内の1つのフォルダから別のフォルダにファイルをコピーしようとしています。私はファイルをコピーするaws jdkを使用しています。他の質問を確認しましたが、主に他のsdkを使用しています。私はこのポスト(AWS S3 copy object source key and destination key)で言及された同じ方法を使用して、異なる私のキーはフォルダ構造を含んでいます。アクセスを拒否してs3コピーに失敗しました
私は以下のコードを使用しています。
public CopyObjectResult copyToAFolder(String sourceBucketName,
String sourceKeyName, String destinationBucketName,
String destinationKeyName) {
LOG.info(
"Archiving the file Source:{},SourceKey:{},Destination:{},DestinationKey:{}",
new Object[] { sourceBucketName, sourceKeyName, destinationBucketName,
destinationKeyName });
CopyObjectRequest copyObjRequest = new CopyObjectRequest(sourceBucketName,
sourceKeyName, destinationBucketName, destinationKeyName);
return amazonS3Client.copyObject(copyObjRequest);
}
this.Iがリスティングサービスを使って、キー名を得たように私は、パラメータを渡していますので、キーの名前は右です。
sourceBucketName: myTestBucket
sourceKeyName:testing/movement/sample.txt
destinationBucketName:myTestBucket
destinationKeyName:testing/movement2/sample.txt(I have tried with /testing/movement2/ also)
これはaccessDenied例外で失敗します。私はこのバケットに完全にアクセスできます.S3Clientを使用してこのバケットからファイルを削除できます。拒否されたアクセスは、コピーのみに固有です。なぜこのようなことが起こるか、
エラー。
com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: XXXXXXXXXXXX)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1343) ~[aws-java-sdk-core-1.11.37.jar:na]
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:961) ~[aws-java-sdk-core-1.11.37.jar:na]
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:738) ~[aws-java-sdk-core-1.11.37.jar:na]
at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:489) ~[aws-java-sdk-core-1.11.37.jar:na]
at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:448) ~[aws-java-sdk-core-1.11.37.jar:na]
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:397) ~[aws-java-sdk-core-1.11.37.jar:na]
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:378) ~[aws-java-sdk-core-1.11.37.jar:na]
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4039) ~[aws-java-sdk-s3-1.11.37.jar:na]
at com.amazonaws.services.s3.AmazonS3Client.copyObject(AmazonS3Client.java:1714) ~[aws-java-sdk-s3-1.11.37.jar:na]
ファイルが権限を持っている確認しました、ファイルは、それが権限を持っているバケツ – kuhajeyan
に加えて、独自の権限を有していてもよく、私はこのファイルを削除することができています。 – Harry
あなたはIAMユーザーとしてリクエストしていますか、AWSはさまざまなコンテキストでアクセス許可を確認しています。http://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-auth-workflow-object-operation.html – kuhajeyan