2012-10-31 8 views
6

Amazon S3でホストされているファイルがあります。アプリでの処理後にファイルをダウンロードしたいと思います。このアプリビューでは、HTTP Authorizationヘッダーを続行する必要があります。アプリへのアクセスが許可された場合に必要なAuthorizationリクエストヘッダ HTTPリダイレクトでヘッダーを伝播しない

    1. クエリビュー/file/xxx、いくつかの治療
    2. 署名S3のURLを生成し、それ
    にリダイレクトしない:ここではプロセスがあります

    実際、リクエストヘッダーがリダイレクトにも伝播され、AmazonのS3シグネチャと競合しているため、次のエラーメッセージが表示されます。

    署名クエリ文字列パラメータまたはAuthorizationヘッダのいずれかを指定する必要があり、両方ではない

    そこで、S3にAuthorizationヘッダを伝播しないためにそこの方法はありますか?

    すべての3xx HTTPコードをテストしました。前もって感謝します。

  • +0

    解決方法を見つけましたか? – gorus

    +0

    ヘッダーを伝播するかどうかはクライアントの責任であり、変数と思われます...メモリから、GETパラメータを使用して自分の認証トークンを渡す競合をバイパスしました。 –

    +0

    私のケースでは、残念ながら、悪魔は細部にあります:http://stackoverflow.com/questions/33714122 – gorus

    答えて

    0

    S3ファイルのパスは、/file/xxxと同じドメインにありますか?これは、おそらく認証ヘッダーが送信されている理由を説明します。アプリケーションビューとは別のドメインにS3をホストしている場合は、S3ドメインに承認ヘッダーが送信されないと仮定します(HTTP認証はドメイン単位であるため)。

    +0

    あなたの返信ありがとうございましたMatthew、しかしこれはまったく同じドメインにはありません。 '/ file/xxx'はローカルで、開発用コンピュータのDjangoを利用しています。 –

    2

    は、それは、例えば、参照、あなたのクライアントに依存してもよい:https://code.google.com/p/go/issues/detail?id=4800

    デフォルトでは、あなたのAuthorizationヘッダーの上に運びませんカール表示されます。しかし、私は同様の問題に取り組んでおり、デフォルトではhttpコンポーネントがそれを実行するように見えます。