0

Amazon C# SDK バージョン 1.5.36.0 を使用しています。ファイルを Amazon S3 にアップロードするクラスを作成しましたが、私のマシンでは問題なく動作し、エラーはまったくありませんでしたが、実稼働サーバーで実行すると、次のエラーが表示されます:「基になる接続が閉じられました: 確立できませんでした」 SSL/TLS セキュア チャネルの信頼関係。」

私が参照しているコードを以下に貼り付けます。

public bool SaveFile(S3Folder folder, string customFolder, string fileName, Stream stream, bool publicFile)
    {
        // Validações
        if (string.IsNullOrEmpty(fileName) || stream == null)
            return false;

        using (var s3Client = new AmazonS3Client(accessKey, secretKey, region))
        {
            var request = new PutObjectRequest();
            request.BucketName = bucketName;
            request.InputStream = stream;

            if (!string.IsNullOrEmpty(customFolder))
                request.Key = GetFolder(folder) + "/" + customFolder + "/" + fileName;
            else
                request.Key = GetFolder(folder) + "/" + fileName;

            if (!publicFile)
                request.CannedACL = S3CannedACL.Private;
            else
                request.CannedACL = S3CannedACL.PublicRead;

            s3Client.PutObject(request);

            return true;
        }
    }

ファイルを保存するのは私のクラスのメソッドです。S3Folder は列挙型であり、GetFolder はフォルダー名を含む文字列を返すだけです。

皆さん、私を助けてくれませんか? 私はそれを探していましたが、まだ私の問題を解決する答えはありません。

前もって感謝します。

4

2 に答える 2

2

私はそれを解決しました。クライアントの作成時にhttpに設定しました。以下のコードを参照してください。

public bool SaveFile(S3Folder folder, string customFolder, string fileName, Stream stream, bool publicFile)
    {
        // Validações
        if (string.IsNullOrEmpty(fileName) || stream == null)
            return false;

        AmazonS3Config S3Config = new AmazonS3Config()
        {
            ServiceURL = "s3.amazonaws.com",
            CommunicationProtocol = Protocol.HTTP,
            RegionEndpoint = region
        };

        using (var s3Client = new AmazonS3Client(accessKey, secretKey, S3Config))
        {

            var request = new PutObjectRequest();
            request.BucketName = bucketName;
            request.InputStream = stream;

            if (!string.IsNullOrEmpty(customFolder))
                request.Key = GetFolder(folder) + "/" + customFolder + "/" + fileName;
            else
                request.Key = GetFolder(folder) + "/" + fileName;

            if (!publicFile)
                request.CannedACL = S3CannedACL.Private;
            else
                request.CannedACL = S3CannedACL.PublicRead;

            s3Client.PutObject(request);

            return true;
        }
    }
于 2013-11-06T15:41:13.350 に答える