C# 调用Amazon S3时未指定用户名/密码

C# 调用Amazon S3时未指定用户名/密码,c#,amazon-s3,webclient,C#,Amazon S3,Webclient,一段时间以来,我们一直在访问AmazonS3上的供应商提供的文件,并注意到今天我们的应用程序在尝试下载时收到了这条消息 未指定用户名/密码 我们通过他们的网站找到了这个文件,但它进入了他们的S3帐户。它是带有基本身份验证的Https,因此我们通过浏览器对其进行了测试,没有任何问题。下面是我们用来调用它的代码 System.Uri responseUri = new System.Uri(DownloadFileLocation); WebClient client = new WebCl

一段时间以来,我们一直在访问AmazonS3上的供应商提供的文件,并注意到今天我们的应用程序在尝试下载时收到了这条消息

未指定用户名/密码

我们通过他们的网站找到了这个文件,但它进入了他们的S3帐户。它是带有基本身份验证的Https,因此我们通过浏览器对其进行了测试,没有任何问题。下面是我们用来调用它的代码

  System.Uri responseUri = new System.Uri(DownloadFileLocation);
  WebClient client = new WebClient ();
  string authInfo = UserName + ":" + Password;
  authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
  client.Headers["Authorization"] = "Basic " + authInfo;
  client.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.75 Safari/537.1");
  client.Headers.Add("Accept: text/html,application/zip,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
  client.Headers.Add("Accept-Encoding: gzip,deflate,sdch");
  client.Headers.Add("Accept-Language: en-US,en;q=0.8");
  client.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3");
  client.DownloadFile(responseUri, LocalFilePath);

当调用DownloadFile()方法时,我们得到上面的错误消息,没有任何其他指示。我在亚马逊开发者论坛上到处看看,什么都没看到。任何帮助都将不胜感激,谢谢

Amazon S3不支持基本身份验证,因此我怀疑您实际上不是直接访问S3,而是处理身份验证的中间层。这就是你应该寻找问题和可能的解决方案的地方

有关当前支持的S3身份验证模式的信息,请查看:


查看了修复其基本身份验证的供应商

考虑使用亚马逊的API。我同意@SLaks。有什么理由不使用亚马逊的API吗?