Vin*_*nie 8 rest amazon-web-services reactjs
在我的 React 应用程序中,我正在GET
对一个端点进行REST Web 服务调用,其目的是为受保护的 S3 资产生成一个预签名的 AWS URL。我们将Authorization
标头和令牌传递给服务。
此初始调用按预期工作,服务以重定向(通过 307 响应代码)进行响应,并在响应的Location
标头中包含预签名 URL 。
我面临的问题是,当遵循重定向时,亚马逊拒绝使用 400 响应代码和以下消息的呼叫。
Only one auth mechanism allowed; only the X-Amz-Algorithm query parameter, Signature query string parameter or the Authorization header should be specified.
Run Code Online (Sandbox Code Playgroud)
有没有办法Authorization
在重定向之前删除标题?
这似乎应该是一种相当普遍的情况(当 React 应用程序需要访问受保护的 S3 资产时)——有没有更好的方法来处理这个用例?
在与 Amazon 支持人员进行多次对话后,实现上述目标的方法是在 S3 上使用 CloudFront 发行版。CloudFront 没有与 S3 相同的限制Only one auth mechanism allowed
这就是我所做的:
您需要的另一件事是此处描述的 CloudFront 密钥对,然后在生成预签名链接时使用该信息。
更多信息
亚马逊确实让这件事变得比实际需要的复杂得多(即为什么对Only one auth mechanism allowed
S3 有限制?),但至少为那些需要它的人提供了一个解决方法。
归档时间: |
|
查看次数: |
1850 次 |
最近记录: |