我有这部分代码使用 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 不能。
为了配置我的存储桶和身份池,我使用了放大文档。