6

我在 Amazon S3 上托管了文件,我想在我的应用程序中处理后下载它们。此应用程序视图需要 HTTP 授权标头才能继续。这是过程:

  1. /file/xxx带有所需Authorization请求标头的查询视图
  2. 如果应用程序访问被授予,做一些处理
  3. 生成一个签名的 S3 url,并重定向到它

事实是请求标头也在重定向上传播,并且与亚马逊的 S3 签名冲突,我收到以下错误消息:

应指定 Signature 查询字符串参数或 Authorization 标头,不能同时指定两者

那么,有没有办法不将Authorization标头传播到 S3 ?

请注意,我已经测试了所有3xxHTTP 代码。提前致谢。

4

2 回答 2

2

这可能取决于您的客户,例如参见:https ://code.google.com/p/go/issues/detail?id=4800

默认情况下,curl 似乎不会继承您的 Authorization 标头。但我正在处理一个类似的问题,我看到默认情况下 http 组件似乎带有它。

于 2013-11-07T21:54:11.550 回答
0

您的 S3 文件路径是否与您的/file/xxx. 这可以解释为什么要发送 Authorization 标头。如果您将 S3 托管在与应用程序视图不同的域上,那么我会假设 Authorization 标头不会发送到 S3 域(因为 HTTP 授权是每个域的)。

于 2012-11-14T15:57:13.803 回答