Javascript 从Angular将imagem Base64上载到S3

Javascript 从Angular将imagem Base64上载到S3,javascript,node.js,angular,typescript,amazon-s3,Javascript,Node.js,Angular,Typescript,Amazon S3,我尝试使用angular将imagem base64发送到s3,react与后端的端点一起工作,但angular中出现错误: <Code>SignatureDoesNotMatch</Code> <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message

我尝试使用angular将imagem base64发送到s3,react与后端的端点一起工作,但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上,我有两个服务:

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' },
    });}
我试图传递的imagem是由


问候

您使用的签名版本是什么??我看到您没有在这里定义它……签名是在由服务“uploadImage”生成的url中返回的,我将Put作为url返回的示例:尝试在s3对象配置中添加此
signatureVersion:'v4'
配置{Bucket:process.env.AWS_Bucket,ContentType:'image/jpeg',ContentEncoding:'base64',Key:Key,signatureVersion:'v4',在这里?
this.service.uploadImage().then(({ url }) => {
                this.service
                    .saveImage(url, this.webcamImage.imageAsBase64)
                    .subscribe(res => {
                        console.log(res);
                    });
            });