繁体   English   中英

AWS Lambda Node 12.X 上的意外令牌 s3 错误

[英]Unexpected Token s3 error on AWS Lambda Node 12.X

我正在使用 Node 12.x 版本来编写我的 Lambda 函数。 这是我得到的解析错误。 可能是什么原因? 解析错误:意外的令牌 S3

更新

const im = require("imagemagick");
const fs = require("fs");
const os = require("os");
const uuidv4 = require("uuid/v4");
const {promisify} = require("util");
const AWS = require('aws-sdk');

const resizeAsync = promisify(im.resize)
const readFileAsync = promisify(fs.readFile)
const unlinkAsync = promisify(fs.unlink)


AWS.config.update({region: 'ap-south-1'})
const s3 = new AWS.S3();

exports.handler = async (event) => {
    let filesProcessed = event.Records.map((record) => {
        let bucket = record.s3.bucket.name;
        let filename = record.s3.object.key;
    //Fetch filename from S3
    var params = {
        Bucket: bucket,
        Key: filename
    };
    //let inputData = await s3.getObject(params).promise()
    let inputData = await s3.getObject(params).promise();
    //Resize the file
    let tempFile = os.tmpdir() + '/' + uuidv4() + '.jpg';
    let resizeArgs = {
        srcData: inputData.Body,
        dstPath: tempFile,
        width: 150
    };
    await resizeAsync(resizeArgs)
    //Read the resized File
    let resizedData = await readFileAsync(tempFile)

    //Upload the resized file to S3
    let targetFilename = filename.substring(0, filename.lastIndexOf('.') + '-small.jpg')
    var params = {
        Bucket: bucket + '-dest',
        Key: targetFilename,
        Body: new Buffer(resizedData),
        ContentType: 'image/jpeg'
    }
    await s3.putObject(params).promise();
    return await unlinkAsync(tempFile)
})

await Promise.all(filesProcessed)
return "done"

}

这是相同的代码。 悬停红色标记时出现意外令牌 S3 错误(如图所示)

您可以做的是,如下声明 inputData 并使用来自 getObject 的响应对其进行初始化。

let inputData;    
var params = {
    Bucket: "examplebucket", 
    Key: "HappyFace.jpg"
};
s3.getObject(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     inputData = data;           // successful response
});

有关更多信息,您可以参考这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM