首页 > 解决方案 > 使用 Amplify 在 S3 上上传文件时出现 AuthorizationHeaderMalformed 错误

问题描述

我有这部分代码使用 Amplify 将文件发送到 S3

     const file = e.target.files[0];
            try {
                console.log(Storage.vault)
                await Storage.put(file.name, file);
            } catch (error) {
                console.log('Error uploading file: ', error);
            }

但总是返回这个错误:

<Error>
<Code>AuthorizationHeaderMalformed</Code>
<Message>The authorization header is malformed; the authorization header requires three components: Credential, SignedHeaders, and Signature.</Message>
<RequestId>YP2HEHPE20T13HNJ</RequestId>
<HostId>T5mH0m+CHZ6n/JuShi7FdUBYZt3BEz4QiEHMmckL0v5VrB7DqupGbmadxDgZnitWFI0IUYVmBig=</HostId></Error>

我使用 Cognito 登录我的系统,并使用此代码设置 Amplify 的 de 配置

   Auth: {
        identityPoolId: process.env.REACT_APP_IDENTITY_POOL_ID, 
        region: process.env.REACT_APP_REGION,
        userPoolId: process.env.REACT_APP_USER_POOL_ID,
        userPoolWebClientId: process.env.REACT_APP_CLIENT_ID,
    },
    Storage: {
        AWSS3: {
            region: process.env.REACT_APP_REGION,
            bucket: process.env.REACT_APP_BUCKET,
        }
    } 

如果我使用 AWS SDK 在 Amplify 上获取连接信息,我可以在 S3 上进行上传,但只有 Amplify 不能。

为了配置我的存储桶和身份池,我使用了放大文档。

标签: amazon-web-servicesamazon-s3aws-amplifyaws-amplify-sdk-js

解决方案


推荐阅读