Я использую Amazon AWS .NET SDK v1.2.1.
Следующий код вызывает исключение после неудачного поиска в DNS для myBucket.more.https
, что явно не то, что ему следует искать ...
AmazonS3Config S3Config = new AmazonS3Config()
{
ServiceURL = "https://s3.amazonaws.com",
CommunicationProtocol = Amazon.S3.Model.Protocol.HTTPS,
};
using (AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey,secretKey, S3Config))
{
PutObjectRequest request = new PutObjectRequest();
using (MemoryStream ms = new MemoryStream(inputBytes))
{
request.WithBucketName("myBucket.more")
.WithKey(output.Name)
.WithInputStream(ms);
using (S3Response response = client.PutObject(request))
{
Log.Message("File Sent: " + output.Name);
}
}
}
Если я удалю https : //
в начале ServiceURL выдает веб-исключение с:
«Базовое соединение было закрыто: не удалось установить доверительные отношения для безопасного канала SSL / TLS».
Так как же мне заставить работать SSL?
Единственный способ, которым я до сих пор справился, - это небезопасно:
AmazonS3Config S3Config = new AmazonS3Config()
{
ServiceURL = "s3.amazonaws.com",
CommunicationProtocol = Amazon.S3.Model.Protocol.HTTP,
};
ОБНОВЛЕНИЕ
Если я не передаю пользовательский S3Config для CreateAmazonS3Client
, он все еще не работает с:
«Базовое соединение было закрыто: не удалось установить доверительные отношения для безопасного канала SSL / TLS.»
«Удаленный сертификат недействителен в соответствии с в процедуру проверки. "