将屏幕快照从AWS lambda上传到s3存储桶失败

蓝魔

我正在尝试在aws lambda上使用puppeteer截屏并将其上传到s3存储桶。但是,s3.putObject方法似乎不起作用。在lambda控制台上,我同时收到“上传屏幕快照's3:// $ {s3bucket} / $ {filename}'”和“上传完成”消息,但未收到“内部回调”消息。奇怪的是,在执行lambda的过程中我没有出现任何错误,但是我只是无法在putObject方法中获取消息,也无法在存储桶中找到屏幕截图。谁能给我一些关于调试的建议?

const aws = require('aws-sdk');
const s3 = new aws.S3({ apiVersion: '2006-03-01' });

module.exports.saveScreenshotToS3 = async(page, s3bucket, filename) => {
    let buffer = await page.screenshot({encoding: "base64"});
    console.log(`Uploading screenshot 's3://${s3bucket}/${filename}'`);
    const s3Params = {
        Bucket: s3bucket,
        Key: filename,
        Body: buffer
    };
    await s3.putObject(s3Params, (err, data) => {
        console.log("inside callback");
        if (err) {
            console.log(err);
        } else {
            console.log("uploading succeeded");
        }
    }).promise();
    console.log("uploading completed");

}
蓝魔

解决。

我只更改了存储桶策略中的权限,却忘记了更改CORS配置,这就是导致我的功能失败的原因。

我将其添加<AllowedMethod> PUT </AllowedMethod>到CORS配置脚本中,并且上传成功。

切记同时更改存储桶策略和CORS配置,以便您具有将文件上传到存储桶的正确权限。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试直接将文件上传到Amazon S3存储桶时请求失败

如何授予Lambda将文件上传到terraform中的s3存储桶的权限?

使用Api Gateway(Lambda函数)将图像上传到S3存储桶

尝试将文件从 lambda tmp 文件夹上传到 s3 存储桶

将文件上传到S3存储桶

AWS Lambda:如何在S3存储桶中读取CSV文件,然后将其上传到另一个S3存储桶?

在AWS S3存储桶上上传失败的通知

aws 将对象上传到 S3 存储桶并将数据的详细信息传递给 lambda

如何配置“ Terraform”以将zip文件上传到“ s3”存储桶,然后将其部署到lambda

使用Lambda函数将视频上传到s3存储桶,将视频详细信息上传到dynamo数据库

使用Java AWS SDK将文件夹上传到S3存储桶

从SageMaker将数据帧上传到AWS S3存储桶

如何将文件上传到AWS S3存储桶?

如何使用Java Apache HttpClient将文件上传到公共AWS S3存储桶

将多个文件上传到AWS S3存储桶,而不会覆盖现有对象

aws-将字符串作为文件上传到S3存储桶

使用graphicMagic调整大小后将图像上传到AWS S3存储桶

无法将pdf文件上传到AWS s3存储桶-PHP

使用Node将映像上传到AWS S3存储桶。JS

Laravel cURL 错误 28,将文件上传到 aws s3 存储桶时

php laravel直接将文件上传到AWS S3存储桶

使用NodeJS和AWS S3将损坏/截断的mp4上传到S3存储桶

使用Boto3将文件上传到带前缀的S3存储桶

Boto3在将文件上传到S3存储桶时遇到问题

程序文件上传到AWS S3存储桶

AWS CodePiplene不会将文件上传到S3存储桶

减少上传到AWS S3存储桶的时间

使用作业队列上传到AWS S3存储桶

更改已上传到AWS S3存储桶的多个文件的默认内容类型