未指定用户名/密码呼叫Amazon S3

时间:2013-08-12 15:31:07

标签: c# amazon-s3 webclient

我们已经在Amazon S3上托管供应商提供的文件已经有一段时间了,今天我们注意到我们的应用程序在尝试下载时收到此消息

  

未指定用户名/密码

我们点击了通过他们网站的文件,但它通过他们的S3帐户进入隧道。它是Https with Basic Auth,所以我们通过浏览器测试它,没有任何问题。这是我们用来调用它的代码

  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()方法时,我们得到上面的错误消息,没有任何其他指示。我在亚马逊开发者论坛上环顾四周,但没有看到任何东西。非常感谢任何帮助,谢谢

2 个答案:

答案 0 :(得分:0)

Amazon S3不支持Basic Auth,所以我怀疑你实际上并没有直接点击S3,而是一些处理身份验证的中间层。那是你应该寻找问题和可能的解决方案。

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

http://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html

答案 1 :(得分:0)

通过在他们身边修复基本身份验证的供应商