Fetch Put API для загрузки изображения с использованием подписанного URL - PullRequest
0 голосов
/ 11 февраля 2019

Я использую кукловод, и у меня есть требование, где я должен загрузить скриншот на S3.Я использую API PUT PUT с подписанным URL, и мое изображение в формате PNG.Каждый раз, когда я получаю сообщение об ошибке "не удалось получить".Я пытался хранить изображения в памяти и в локальном хранилище, но ни один из них не работал.

1 Ответ

0 голосов
/ 22 февраля 2019
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'.

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