2016-08-04 51 views
0

Ich habe Datei auf AWS S3 zu laden versucht, unten ist der Code, den ichDatei hochladen zu AWS .Error Wenn AWS Mit

private static void UploadToAWS(string localFilePath, string bucketName, string subDirectoryInBucket, string fileNameInS3) 
{ 
    string accessKey = ConfigurationManager.AppSettings["AMAZON_S3_ACCESSKEY"].ToString(); 
    string secretKey = ConfigurationManager.AppSettings["AMAZON_S3_SECRETKEY"].ToString(); 

    AmazonS3Config asConfig = new AmazonS3Config() 
    { 
     ServiceURL = "http://test.s3.amazonaws.com", 

    }; 
    IAmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey,secretKey,asConfig); 


    TransferUtility utility = new TransferUtility(client); 

    TransferUtilityUploadRequest request = new TransferUtilityUploadRequest(); 

    if (subDirectoryInBucket == "" || subDirectoryInBucket == null) 
    { 
     request.BucketName = bucketName; //no subdirectory just bucket name 
    } 
    else 
    { // subdirectory and bucket name 
     request.BucketName = bucketName + @"/" + subDirectoryInBucket; 
    } 
    request.Key = fileNameInS3; //file name up in S3 
    request.FilePath = localFilePath; //local file name 
    request.Headers.CacheControl = "public"; 
    request.Headers.Expires = DateTime.Now.AddYears(3); 
    request.Headers.ContentEncoding = "gzip"; 
    utility.Upload(request); //commensing the transfer 
} 


    UploadToAWS(@"D:\core_gz.min.js", "test123", "test/build/", "core_gz.min.js"); 

versuchen Als ich das ich die folgenden Fehler

erhalte ausführen

Die von uns berechnete Anforderungssignatur stimmt nicht mit der von Ihnen angegebenen Signatur überein. Überprüfen Sie Ihren Schlüssel und die Signiermethode.

Kann mir jemand hier helfen, was ich hier falsch

+0

Mögliche Duplikat von [Amazon MWS - Request Signatur berechnet nicht die Signatur zur Verfügung gestellt] (http://stackoverflow.com/questions/2777078/amazon-mws-request-signature-calculated-does-not-match-the-signature-provided) – Venky

+0

@venky ich überprüft dies, bevor Sie die Frage hier, aber das didn ' t erarbeiten für mich, wie kann das ein Duplikat sein – SoftwareNerd

+0

Auf welcher Zeile der Fehler geworfen wird, wenn Sie debuggen. – Venky

Antwort

0

Ich wollte nur schreiben die Antwort, wenn im Falle tue es jemand anderes, der das gleiche Problem

 private static void UploadToAWS(string localFilePath, string bucketName, string subDirectoryInBucket, string fileNameInS3) 
     { 
     string accessKey = ConfigurationManager.AppSettings["AMAZON_S3_ACCESSKEY"].ToString(); 
     string secretKey = ConfigurationManager.AppSettings["AMAZON_S3_SECRETKEY"].ToString(); 

     AmazonS3Config asConfig = new AmazonS3Config() 
      { 
    ServiceURL = "http://test.s3.amazonaws.com", 
    RegionEndpoint = Amazon.RegionEndpoint.APSoutheast1 // this line fixed the issue 
      }; 
     IAmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey,secretKey,asConfig); 


     TransferUtility utility = new TransferUtility(client); 

     TransferUtilityUploadRequest request = new TransferUtilityUploadRequest(); 

     if (subDirectoryInBucket == "" || subDirectoryInBucket == null) 
     { 
     request.BucketName = bucketName; //no subdirectory just bucket name 
     } 
     else 
     { // subdirectory and bucket name 
     request.BucketName = bucketName + @"/" + subDirectoryInBucket; 
    } 
     request.Key = fileNameInS3; //file name up in S3 
     request.FilePath = localFilePath; //local file name 
     request.Headers.CacheControl = "public"; 
     request.Headers.Expires = DateTime.Now.AddYears(3); 
     request.Headers.ContentEncoding = "gzip"; 
     utility.Upload(request); //commensing the transfer 
    } 
hat helfen könnten

Hinzufügen dieser Zeile in der Konfiguration behoben mein Problem

RegionEndpoint = Amazon.RegionEndpoint.APSoutheast1