我有一個用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函數的最佳方式?