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