我正在使用 Amazon .NET SDK,并且从我的 ASP.NET MVC 应用程序添加文件在我的开发机器上工作正常,当我部署应用程序时(在AppHarbor上)我收到以下错误:
无法为 SSL/TLS 安全通道建立信任关系。
这是我正在使用的代码:
var config = new Amazon.S3.AmazonS3Config();
config.CommunicationProtocol = Amazon.S3.Model.Protocol.HTTPS;
using (var client = Amazon.AWSClientFactory.CreateAmazonS3Client("key", "secret", config))
{
var putRequest = new Amazon.S3.Model.PutObjectRequest();
putRequest.BucketName = "media.bunkerapp.com";
putRequest.CannedACL = Amazon.S3.Model.S3CannedACL.PublicRead;
putRequest.ContentType = file.ContentType;
putRequest.InputStream = file.InputStream;
putRequest.Key = "mykey";
Amazon.S3.Model.S3Response response = client.PutObject(putRequest);
response.Dispose();
}
我知道欧盟桶不能包含 .,正如在这个问题上看到的那样,但我使用的是美国标准桶。再一次,这里的问题是它不适用于 AppHarbor。我试图回滚到一个 1 实例应用程序,但它抛出了同样的错误,这里是堆栈跟踪:
at Amazon.S3.AmazonS3Client.ProcessRequestError(String actionName, HttpWebRequest request, WebException we, HttpWebResponse errorResponse, String requestAddr, WebHeaderCollection& respHdrs, Type t)
at Amazon.S3.AmazonS3Client.Invoke[T](S3Request userRequest)
at Amazon.S3.AmazonS3Client.PutObject(PutObjectRequest request)
at MyController...
任何指针将不胜感激。