使用 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 的配置

   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 不能。

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)