2016-04-25 1 views
0

J'essaie d'établir une connexion à aws pour perofrmer les opérations de base sur s3 seau. Voici le code:AWS S3 en utilisant des grails

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()); 
     } 
    } 

Cela me donne l'erreur:

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. 

J'ai vérifié deux fois la clé d'accès et clé secrète que je me sers. Je n'arrive pas à comprendre le problème.

+0

avez-vous vérifié http://stackoverflow.com/questions/2777078/amazon-mws-request-signature-calculated-does-not-match-the-signature-provided –

Répondre

-1

Il est toujours bon d'utiliser "cognito accountId" plutôt que l'accès et la clé secrète. Parce que l'utilisation de cognito accountID a un accès limité à AWS, qui peut toujours être modifié.

// Initialise le fournisseur d'informations d'identification 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; 

Vous pouvez également trouver le code de fonctionnement de mon blog.

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

Ne pas oublier d'ajouter vos informations informations d'identification:

accountId: @ « xxxxxxxx » identityPoolId: @ » xxxxxxxx-xxxxxxxx » unauthRoleArn: @ » xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx «

+0

Les utilisateurs IAM et les rôles sont tout aussi flexibles, et sont généralement ce qui est utilisé dans ce type de scénario. –

+0

@tauheed vient d'offrir une autre alternative. D'accord avec Mark! –