4
0

More than 1 year has passed since last update.

nodejsでaws-sdkを使った時にハマったこと

Posted at

はじめに

AWS Lambda runtime: nodejsを使って
S3にファイルをアップロードしようとした際につまづいたことをメモ。

環境

  • aws-lambda
    • runtime: nodejs 14.*

結論

aws-sdkにはV2V3がある

そして、私の環境では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を使いましょう

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0