0

I AWS S3 버킷에 연결하고 업로드 다음 코드가 있습니다AWS SDK C 번호 : S3 버킷에 객체를 업로드하려고 null 참조 예외

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

나는

에서 null 참조 예외를 얻고을
encryptionClient.PutObject(request); 

줄이지만 내 개체가 null이 아니기 때문에 원인을 찾을 수 없습니다.

Visual Studio와 최신 버전의 AWSSDK.S3 및 AWSSDK.Core 패키지를 사용하고 있습니다.

답변

1

NPE는 알고리즘 ECDsaCng의 사용과 관련이 있습니다.

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

와 라인

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

교체 예상대로 코드를 실행할 수 있습니다. 나는 왜이 행동이 존재하는지 말할 수 없다. 스택 추적은 AWS SDK의 EncryptEnvelopeKey에서 발생합니다.

관련 문제