不要在HTTP重定向上传播标头

时间:2012-10-31 14:01:18

标签: django http redirect amazon-s3 http-headers

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

  1. 使用所需的/file/xxx请求标头
  2. 查询视图Authorization
  3. 如果授予了应用访问权限,请进行一些处理
  4. 生成已签名的S3网址,然后重定向到该网址
  5. 事实是请求标头也在重定向上传播,并且与Amazon的S3签名冲突,我有以下错误消息:

      

    应指定签名查询字符串参数或授权标头,而不是两者都

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

    请注意,我已测试了所有3xx个HTTP代码。提前谢谢。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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