上传文件到AWS .Error使用AWS

上传文件到AWS .Error使用AWS

问题描述:

当我一直在试图上传文件到AWS S3,下面是我想上传文件到AWS .Error使用AWS

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"); 

当我执行此我得到以下错误代码

我们计算的请求签名与 提供的签名不匹配。检查你的密钥和签名方法。

任何一个可以帮助我在这里,我在做什么错在这里

+0

的可能的复制[亚马逊MWS - 计算所提供的签名不匹配的请求签名( http://*.com/questions/2777078/amazon-mws-request-signature-calculated-does-not-match-the-signature-provided) – Venky

+0

@venky我检查了这之前发布的问题在这里,但没有' t为我工作,这怎么可能是一个重复的 – SoftwareNerd

+0

如果你正在调试,在哪一行上抛出错误。 – Venky

我只是想后的答案,如果在情况下,它可能会帮助一些其他人谁拥有了同样的问题

 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 
    } 

加入这一行的配置固定我的问题

RegionEndpoint = Amazon.RegionEndpoint.APSoutheast1