Загрузить imagem Base64 на S3 из Angular - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь отправить imagem base64 на s3, используя angular, с реакцией работает с конечной точкой бэкэнда, но в angular выдает ошибку:

<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>

Бэкэнд прост:

s3.getSignedUrl(
    'putObject',
    {
        Bucket: process.env.AWS_BUCKET,
        ContentType: 'image/jpeg',
        ContentEncoding: 'base64',
        Key: key
    },
    (e, url) => res.send({ key, url })
);

Затем на angular У меня есть 2 службы:

uploadImage(): Promise<any> {
    return this.http.get(`${api}/upload`).toPromise();
}

saveImage(url: string, image): Observable<any> {
    return this.http.put(url, image, {
        headers: { 'Content-Type': 'image/jpeg', 'Content-Encoding': 'base64' },
    });}

То, что я называю их таким образом в моем компоненте:

this.service.uploadImage().then(({ url }) => {
                this.service
                    .saveImage(url, this.webcamImage.imageAsBase64)
                    .subscribe(res => {
                        console.log(res);
                    });
            });

Изображение, которое я пытаюсь передать это изображение, захваченное ngx-вебкамерой

С уважением!

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