私はラムダ関数をC#で書いていますが、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'
C#のラムダ関数内でS3バケットにオブジェクトをアップロードするための最良の方法は何ですか?