Я пытаюсь отправить 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-вебкамерой
С уважением!