Node.js 木偶演员不渲染AWS S3上存储的图像

Node.js 木偶演员不渲染AWS S3上存储的图像,node.js,express,puppeteer,Node.js,Express,Puppeteer,我正在Nodejs上使用puppeter通过页面呈现PDF文档。但是,似乎无法加载AWS S3上托管的图像,而本地存储在服务器上的图像本身可以正常加载 我尝试添加了waitUntil:“networkidle0”和waitUntil:“networkidle1”,但仍然不起作用。我还尝试添加printBackground:true 这是我的代码: (async () => { const browser = await puppeteer.launch({ arg

我正在Nodejs上使用puppeter通过页面呈现PDF文档。但是,似乎无法加载AWS S3上托管的图像,而本地存储在服务器上的图像本身可以正常加载

我尝试添加了
waitUntil:“networkidle0”
waitUntil:“networkidle1”
,但仍然不起作用。我还尝试添加
printBackground:true

这是我的代码:

 (async () => {
    const browser = await puppeteer.launch({
      args: ["--no-sandbox"]
    });
    const page = await browser.newPage();

    await page.setExtraHTTPHeaders({
      authorization: req.session.token
    });

    await page.goto(config.url + "/project/download/" + permalink, {
      waitUntil: "networkidle0"
    });

    const buffer = await page.pdf({
      filename: permalink + "_ProjectBrief" + ".pdf",
      format: "A4",
      margin: {
        top: 60,
        bottom: 60,
        left: 60,
        right: 50
      },
    });
    res.type("application/pdf");
    res.send(buffer);
    await browser.close();
  })();
你知道我该怎么解决这个问题吗


提前谢谢

我想我解决了这个问题

添加
headless:false后

const browser = await puppeteer.launch({
      args: ["--no-sandbox"]
    });
我意识到图像没有加载是因为400错误。我的假设是Chromium没有足够的时间下载图像,因此抛出了这个错误

我所做的是编辑我希望Puppeter呈现的HTML文件,并向其中添加以下代码:

data.ProjectImages.forEach(e => {
   window.open(e.imageUrl, '_blank');
});
它通过URL将图像打开到一个新选项卡上。这确保图像下载到Chromium实例(Puppeter运行Chromium)

渲染的PDF现在可以显示图像