【发布时间】:2018-12-24 20:56:31
【问题描述】:
我正在尝试使用 S3 预签名的 PUT url 执行文档上传。我使用 java AWS SDK (GeneratePresignedUrlRequest.java) 生成了 url。此 url 生成代码位于 AWS API 网关后面的 lambda 函数中。
但是,当我在 Postman 中复制生成的 url 并尝试执行上传时,出现以下错误。
<Error>
<Code>AccessDenied</Code>
<Message>
There were headers present in the request which were not signed
</Message>
<HeadersNotSigned>host</HeadersNotSigned>
<RequestId>6E624EC66091A099</RequestId>
<HostId>
9HnUUZpa9zUWfyzuNrZtRkoN2CYxH8V6rqx5QgsMFC6foTZKuG5qmZL5ThnUXooYPk2reFzKKUg=
</HostId>
</Error>
生成的url是“https://bucket>.s3.amazonaws.com/key>?X-Amz-Security-Token=值>&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20180718T013339Z&X-Amz-SignedHeaders =content-type%253Bhost&X-Amz-Expires=1799&X-Amz-Credential=值>&X-Amz-Signature=值 em>>
关于在生成 url 时需要更正的内容有什么建议吗?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda aws-api-gateway