使用签名网址获取Put API以上传图像

问题描述 投票:-1回答:1

我正在使用木偶戏,我有一个要求,我必须在S3上传截图。我正在使用带有签名网址的抓取PUT api,我的图像是png格式。每次我收到错误'无法获取'。我曾尝试将图像保存在内存和本地存储中,但它们都没有工作。

amazon-s3 puppeteer fetch-api
1个回答
0
投票
await page.evaluate(async(signedUrl,screenshot) =>{
        (function generateXHRRequest(){
            var xhr = new XMLHttpRequest();
            xhr.withCredentials = true;

            xhr.onreadystatechange = function () {
                if (xhr.readyState === 4 && xhr.status === 200) {
                 console.log(JSON.stringify(xhr.response));
              }
            };
            xhr.open("PUT", signedUrl);
            xhr.setRequestHeader("Cache-Control", "no-cache");
            xhr.setRequestHeader('Content-Type', 'image/png');
            xhr.setRequestHeader('Accept', 'image/png');
            xhr.setRequestHeader('Access-Control-Allow-Origin','*');
            xhr.setRequestHeader('Access-Control-Allow-Credentials', 'true');

            xhr.send(screenshot.data);
        })();
        },signedUrl,screenshot);
    })

我已经捕获了截图并将其保存在内存中。现在将其传递给上述函数。这里字节数组作为文本复制到文件,从S3,当我手动下载文件时,下载'.txt'文件。

© www.soinside.com 2019 - 2024. All rights reserved.