尝试将对象上传到S3存储桶时,AWS SDK C#:null引用异常

时间:2016-09-18 23:49:18

标签: c# amazon-web-services amazon-s3 nullreferenceexception aws-sdk

我有以下用于连接和上传到AWS S3存储桶的代码:

class Program    
{
    public static AmazonS3EncryptionClient encryptionClient;

    public static void Main(string[] args)
    {
        Upload();
    }

    static void Upload()
    {
        var algorithm = new System.Security.Cryptography.ECDsaCng();
        encryptionClient = new AmazonS3EncryptionClient(new EncryptionMaterials(algorithm));

        PutObjectRequest request = new PutObjectRequest();
        request.BucketName = "...";
        request.Key = "...";
        request.InputStream = new MemoryStream(Encoding.Default.GetBytes("..."));
        encryptionClient.PutObject(request);
    }

我在

处获得了一个空引用异常
encryptionClient.PutObject(request);

行,但我无法找到原因,因为我的所有对象都不为空。

我正在使用Visual Studio以及最新版本的AWSSDK.S3和AWSSDK.Core包。

1 个答案:

答案 0 :(得分:1)

NPE与ECDsaCng算法的使用有关。替换行

var algorithm = new System.Security.Cryptography.ECDsaCng();

var algorithm = System.Security.Cryptography.RSA.Create();

允许代码按预期执行。我不能说为什么会出现这种行为。堆栈跟踪源自AWS SDK中的EncryptEnvelopeKey