Не удается загрузить скриншот с лямбды AWS в корзину s3 - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь сделать скриншоты с кукловодом на AWS Lambda и загрузить скриншот в корзину s3.Однако метод s3.putObject, похоже, не работает.На лямбда-консоли я получил как сообщение «uploading screenshot» s3: // $ {s3bucket} / $ {filename} '», так и сообщение« upload complete », но не сообщение« inside callback ».Странно то, что я не получил ошибку во время лямбда-выполнения, но я просто не смог получить сообщение внутри метода 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");

}

1 Ответ

0 голосов
/ 12 июня 2018

Разрешено.

Я только изменил разрешение в политике корзины и забыл изменить конфигурацию CORS, и это привело к сбою моей функции.

Я добавил <AllowedMethod> PUT </AllowedMethod> в свой скрипт конфигурации CORSи загрузка работает.

Не забудьте изменить и политику корзины, и конфигурацию CORS, чтобы у вас были права на загрузку файлов в корзину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...