AWS SDK C#:尝试将对象上传到 S3 存储桶时出现空引用异常
AWS SDK C#: null reference exception when trying to upload object to S3 bucket
我有以下用于连接和上传到 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);
行,但我找不到原因,因为我的 none 个对象为空。
我正在使用 Visual Studio 以及最新版本的 AWSSDK.S3 和 AWSSDK.Core 软件包。
NPE与ECDsaCng
算法的使用有关。替换行
var algorithm = new System.Security.Cryptography.ECDsaCng();
与
var algorithm = System.Security.Cryptography.RSA.Create();
允许代码按预期执行。我不能说为什么会出现这种行为。堆栈跟踪源自 AWS SDK 中的 EncryptEnvelopeKey
。
我有以下用于连接和上传到 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);
行,但我找不到原因,因为我的 none 个对象为空。
我正在使用 Visual Studio 以及最新版本的 AWSSDK.S3 和 AWSSDK.Core 软件包。
NPE与ECDsaCng
算法的使用有关。替换行
var algorithm = new System.Security.Cryptography.ECDsaCng();
与
var algorithm = System.Security.Cryptography.RSA.Create();
允许代码按预期执行。我不能说为什么会出现这种行为。堆栈跟踪源自 AWS SDK 中的 EncryptEnvelopeKey
。