Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 使用签名url获取Put API以上载图像_Amazon S3_Puppeteer_Fetch Api - Fatal编程技术网

Amazon s3 使用签名url获取Put API以上载图像

Amazon s3 使用签名url获取Put API以上载图像,amazon-s3,puppeteer,fetch-api,Amazon S3,Puppeteer,Fetch Api,我使用木偶演员,我有一个要求,我必须上传S3上的截图。 我正在使用带有签名url的fetch-PUT api,我的图像是png格式的。 每次我收到错误“无法获取”。我曾尝试将图像保存在内存和本地存储中,但两者都不起作用 await page.evaluate(async(signedUrl,screenshot) =>{ (function generateXHRRequest(){ var xhr = new XMLHttpRequest();

我使用木偶演员,我有一个要求,我必须上传S3上的截图。 我正在使用带有签名url的fetch-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文件被下载。

你能分享你的获取代码吗?你在使用cors吗?我可以使用普通的xhr调用将文件上传到s3。但现在我面临另一个问题,我的截图是作为“txt”文件下载的。当我打开它时,我可以看到图像的字节数组是文本。例如:137,80,78,71,13,10,26,10,0,0,0,0,13,73,72,68,82,0,0,3,34,0,0,2,88,8,6,0,0,0158131,82,77,0,0,32,0,73,68,65,841201562362219120,202132501922412391179233141,16,72239,36212,16,18122,9160,20233,82236,88192138,5197222,11182171,63,81217229,1439。。我如何确保图片上传格式正确,下载格式相同?你可以上传一些东西,这很好,但是你能分享上传和下载的代码吗?