在使用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。