はじめに
AWS Lambda
runtime: nodejs
を使って
S3
にファイルをアップロードしようとした際につまづいたことをメモ。
環境
- aws-lambda
- runtime: nodejs 14.*
結論
aws-sdk
にはV2とV3がある
そして、私の環境ではV2だと動きませんでした。
クラメソにも記事がありました。
導入方法の違い
// V2
$ npm install aws-sdk
// V3
$ npm install @aws-sdk/client-s3
S3へオブジェクトをuploadするときの違い
V2の場合
import * as AWS from 'aws-sdk'
AWS.config.apiVersions = {
s3: '2006-03-01',
};
const putObject = async () => {
var s3 = new AWS.S3();
var params = {
Body: <Object>,
Bucket: <Bucket名>,
Key: <Object名>,
};
s3.putObject(params, (err, data) => {
if (err) console.log(err);
else console.log(data);
});
}
V3の場合
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3';
const putObject = async () => {
const s3 = new S3Client({
region: 'ap-northeast-1'
})
const command = new PutObjectCommand({
Body: <Object>,
Bucket: <Bucket名>,
Key: <Object名>,
})
await s3.send(command)
}
最後に
V2は2023年にメンテナンスモードになるらしいので、V3を使いましょう