2011-01-27 12 views
8

Amazon AWS .NET SDK v1.2.1 kullanıyorum.Amazon S3 sorunları SSL'nin C# sdk ile çalışmasını sağlıyor

Aşağıdaki kod bunu atar ServiceURL önünden https:// kaldırırsanız her anlamda ...

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); 
     } 
    } 
} 

görünümlü olmalıdır neyi açıkça değil myBucket.more.https için bir DNS araması başarısız ardından istisna atar ile bir web istisna:

"The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel."

Peki herhalde ben SSL çalışma almak için? Ben CreateAmazonS3Client için özel S3Config geçemiyor, bunu

AmazonS3Config S3Config = new AmazonS3Config() 
{ 
    ServiceURL = "s3.amazonaws.com", 
    CommunicationProtocol = Amazon.S3.Model.Protocol.HTTP, 
}; 

GÜNCELLEME

:

Şimdiye kadar idare ettik tek yolu güvenli değildir aşağıdaki malzemeleri olduğunu

"The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel."

"The remote certificate is invalid according to the validation procedure.": hala vererek başarısız olduğunu

cevap

6

ServiceUrl, https:// önünde S3.amazonaws.com olmalıdır. Bu, Communication protokolü için HTTPS olduğu varsayılan ayardır. Bu nedenle ayarları el ile yapmazsanız aynı hatayı alırsınız. HTTPS kullanmak istiyorsanız

Güncelleme

AB kovalar dönemleri (.) adına içeremez.

+0

Kepçe, saat önce oluşturuldu ve SSL'yi kapatırsam mükemmel çalışır. Varsayılan yapılandırma ile: "Temel bağlantı kapatıldı: SSL/TLS güvenli kanalı için güven ilişkisi kurulamadı. Uzak sertifika, doğrulama prosedürüne göre geçersiz." – Tim

+0

yine de DNS'e düşebileceğini tahmin etsem de bu sertifikaya uymak zorunda! – Tim

+0

@Jim - telin karşısına çıkan istekleri fiddler gibi bir araçla incelemeye çalıştınız mı? –