在使用Node.js时遇到的AWS SDK问题

首先

使用AWS Lambda的Node.js运行时时,尝试将文件上传到S3遇到了一些问题,做下了笔记。

环境

    • aws-lambda

runtime: nodejs 14.*

總結

AWS-SDK有V2和V3版本。

然后,在我的环境中,V2无法正常运行。

克拉梅索也有相关报道。

 

导入方法的不同方式

// V2
$ npm install aws-sdk

// V3
$ npm install @aws-sdk/client-s3

上传对象到S3时的区别。

如果是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。

广告
将在 10 秒后关闭
bannerAds