2016-04-25 19 views
0

私はs3バケットの基本操作のperofrmingのawsへの接続を確立しようとしています。AWS S3 grailsを使用して

request- Received error response: com.amazonaws.services.s3.model.AmazonS3Exception: The request signature we calculated does not match the signature you provided. Check your key and signing method. 

私も二重の私が使用していたアクセス鍵と秘密鍵を確認しています

def list(){ 
     AWSCredentials credentials = new BasicAWSCredentials("Access key", "Secret Key"); 


     AmazonS3 s3client = new AmazonS3Client(credentials); 


     String bucketName = "sample-bucket-from-java-code"; 



     System.out.println("Listing all buckets : "); 
     for (Bucket bucket : s3client.listBuckets()) { 
      System.out.println(" - " + bucket.getName()); 
     } 
    } 

これは私にエラーを与える:以下のコードです。問題を理解できません。

+0

私はあなたにチェックをしましたか?http://stackoverflow.com/questions/2777078/amazon-mws-request-signature-calculated-does-not-match-the-signature-provided –

答えて

-1

アクセスと秘密鍵ではなく、常に「cognito accountId」を使用するのが良いです。 cognito accountIDを使用するとAWSへのアクセスが制限されるため、常に変更できます。

// Amazon Cognito認証プロバイダを初期化します。

AWSCognitoCredentialsProvider* credentialsProvider = [AWSCognitoCredentialsProvider 
                 credentialsWithRegionType:AWSRegionUSEast1 
                 accountId:@"xxxxxxxxxxx" 
                 identityPoolId:@"xxxxxxxxxxx" 
                 unauthRoleArn:@"arn:aws:iam::xxxxxxxxxxx" 
                 authRoleArn:nil]; 

AWSServiceConfiguration* configuration = [AWSServiceConfiguration configurationWithRegion:AWSRegionUSWest2 
                     credentialsProvider:credentialsProvider]; 

[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration; 

私のブログから実行コードを見つけることもできます。

https://tauheeda.wordpress.com/2015/10/15/use-aws-service-to-downloadupload-files-in-your-applications/

あなたの資格情報を追加することを忘れないでください:

アカウントID:「XXXXXXXX」 identityPoolId @:「XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX「@:」XXXXXXXX-XXXXXXXX」 unauthRoleArn @を

+0

IAMのユーザーと役割は同様に柔軟性があり、一般に、このタイプのシナリオで使用されるものです。 –

+0

@tauheedは別の代替手段を提供しました。マークと合意した! –

関連する問題