【问题标题】:AWS SDK for .NET. The authorization mechanism you have provided is not supported适用于 .NET 的 AWS 开发工具包。不支持您提供的授权机制
【发布时间】:2017-07-30 14:01:15
【问题描述】:

我在发送 ListObjectRequest 时收到下一个错误:

The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256

根据this的回答,AmazonS3Config的更新方式如下:

var amazonS3Config = new AmazonS3Config
{
    SignatureVersion = "4",
    ServiceURL = bucketName,
    RegionEndpoint = RegionEndpoint.USEast1,
    SignatureMethod = SigningAlgorithm.HmacSHA256
};

var s3Client = new AmazonS3Client(accessKeyID, secretKey, amazonS3Config);

但我仍然收到此错误。我在这里错过了什么?

谢谢。

【问题讨论】:

  • 我正在使用法兰克福,我的代码与您的代码完全相同。只是冒险猜测...也许 USEast1 仅支持 SignatureVersion 3 或更低版本?
  • 我尝试使用不同的签名版本(4、3、2)来检查它是否适用于任何人。但它失败了。
  • 你能试试法兰克福吗?相同的代码在法兰克福适用于.me,所以没有理由它不适合你..否则这个问题比我们看到的要多......

标签: c# .net amazon-web-services amazon-s3 aws-sdk


【解决方案1】:

尝试使用最新版本的amazonS3 sdk。我认为ServiceUrl在你知道regionEndpoint的情况下是没有必要的,我在私有云amazonS3和我不知道Region Endpoint的情况下使用了它。我可以使用以下代码从亚马逊检索信息。

        var amazonS3Config = new AmazonS3Config();
        // region of FrankPurt is : RegionEndpoint.EUCentral1
        // according to amazonS3 Doc http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
        amazonS3Config.RegionEndpoint = RegionEndpoint.USEast1;

        var s3Client = new AmazonS3Client("your access key", "your secret key", amazonS3Config);
         S3DirectoryInfo dir = new S3DirectoryInfo(s3Client, "your bucket name", "your folder path without bucket name");
        Console.WriteLine(dir.GetFiles().Count());

【讨论】:

    【解决方案2】:

    通过使用它,我可以在欧盟西部 2 地区工作

                AmazonS3Config config = new AmazonS3Config();
                config.SignatureVersion = "4";
                config.RegionEndpoint = Amazon.RegionEndpoint.GetBySystemName("eu-west-2");
                config.SignatureMethod = Amazon.Runtime.SigningAlgorithm.HmacSHA256;
    

    地区应该

    【讨论】:

      猜你喜欢
      • 2020-01-01
      • 2014-12-19
      相关资源
      最近更新 更多