我有一个用C#编写的Lambda函数,尝试将对象上传到S3存储桶失败。出于测试目的,我将输入字符串转换为字节数组并将其用作对象内容。我的处理函数的定义如下:AWS Lambda C#将对象上传到S3
public void FunctionHandler(string input, ILambdaContext context)
{
IAmazonS3 client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1);
byte[] bytes = new byte[input.Length * sizeof(char)];
Buffer.BlockCopy(input.ToCharArray(), 0, bytes, 0, bytes.Length);
using (MemoryStream ms = new MemoryStream())
{
foreach (Byte b in bytes)
{
ms.WriteByte(b);
}
PutObjectRequest request = new PutObjectRequest()
{
BucketName = "BUCKET_NAME",
Key = "OBJECT_KEY",
InputStream = ms
};
client.PutObjectAsync(request);
}
}
功能无差错运行,但对象不会写入到S3。我觉得这可能与PutObjectAsync
方法有关,但我不积极。该IAmazonS3接口包括PutObject
方法,而是企图用这种方法我收到以下错误时:
'IAmazonS3' does not contain a definition for 'PutObject'
什么是载对象的S3存储在C#lambda函数的最佳方式?