2016-04-25 18 views
0

Ich versuche eine Verbindung zu aws herzustellen, um grundlegende Operationen auf s3-Bucket durchzuführen. Im Folgenden finden Sie den Code ein:AWS S3 mit 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. 

Ich habe den Zugriffsschlüssel und geheimen Schlüssel auch doppelt geprüft, die ich benutze:

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

Das bin ich den Fehler gibt. Kann das Problem nicht herausfinden.

+0

hast du http://stackoverflow.com/questions/2777078/amazon-mws-request-signature-calculated-does-not-match-the-signature-provided –

Antwort

-1

Es ist immer gut, "cognito accountId" statt Zugang und geheimer Schlüssel zu verwenden. Weil die Verwendung von cognito accountID eingeschränkten Zugriff auf AWS hat, was immer geändert werden kann.

// Initialisieren Sie den Amazon Cognito-Anmeldeinformationsanbieter.

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; 

Sie können auch laufenden Code von meinem Blog finden.

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

Vergessen Sie nicht, Ihre Berechtigungsnachweis Informationen hinzuzufügen:

accountId: @ „xxxxxxxx“ identityPoolId: @“xxxxxxxx-xxxxxxxx“ unauthRoleArn: @“xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx„

+0

IAM Benutzer und Rollen sind genauso flexibel, und sind in der Regel, was in dieser Art von Szenario verwendet wird. –

+0

@tauheed hat gerade eine andere Alternative angeboten. Einverstanden mit Mark! –