2013-02-12 1 views
8

私はs3の静的コンテンツをdjango-storageで提供しています。これは、boto 2.5.Xを使用するとうまく動作します。しかし、私がboto> = 2.6を使うと、s3メディアへのurlはmangledになります。余分な変数が追加されます。違いは、x-amz-security-tokenが追加されることです(私はそれが欲しくありません)。メディアはURLでアクセスできません。django-storageとs3botoバックエンドを使用する:x-amz-security-tokenが追加されます。

https://mybucket.s3.amazonaws.com/static/style/css/layout.min.css?x-amz-security-token=AQoDYXdzEKj/76aRNkwEaoALUm866M8Z6Kc4aF/76aRNkjDcT70xSVB58kR%2BONYLf7y1z1pgqUX7fPRXVQjP9DYOZzcVdHCV27zybD/iPYT2C6rCEnvkQvhcq.... 

任意の提案:私のsettings.pyで

は私が

AWS_QUERYSTRING_AUTH = False 

悪いのURLを使うのか?あなたの中にこれを追加する

+0

この回答をお探しですか? – bodger

+0

nope ...古いバージョンのbotoで動作しています – bowlby

+0

古い質問ですが、現在のboto(2.42)とdjango-storage(1.5)*のみでこの動作が見られます。 [長年にわたるボトバグ](https://github.com/boto/boto/issues/1477)のように見えます。そして、[この回避策](https://github.com/boto/boto/issues/1477#issuecomment-38759048)が私のために働いた。 – medmunds

答えて

0

試みが

AWS_S3_SECURE_URLS = Falseの

+0

私はAWS_S3_SECURE_URLSの設定がhttpsとhttpのURLを制御していると信じていますが、クエリ文字列認証の追加には関係ありません。 – medmunds

2

をのsettings.py私は

で周りのジャンゴ・ストレージ(バージョン1.1.8)に基づいて、より良い仕事を持っています
AWS_S3_CUSTOM_DOMAIN = 'mybucket.s3.amazonaws.com' 

これは、botoのgenerate_urlを呼び出すdjango-storageを防ぎ、リソースへのパスをつなぎ合わせるだけです。静的ファイルを取得するためにauthを使用したい場合、これは動作しません。好奇心のために

:私のサイトのいくつかの部分に

静的ファイルは働いていたし、他の部分は、管理者のように、動作しませんでした。これは、ブロックタグ{% static %}を定義しますが、彼らは別のことを行う両

{% load staticfiles %} 

{% load static %} 

間と

違いに接続されていました。 staticのものは{{STATIC_URL}}の前に置かれ、staticfilesのものはストレージの urlメソッドを使ってファイルのURLを取得します。 djangoの管理者の {% static %}ブロックは admin_staticから、 staticfilesのように機能します。

{% load staticfiles %}に変更すると、私のサイトは、AWS_QUERYSTRING_AUTH = Falseおよび/またはAWS_S3_SECURE_URLS = Falseの場合はどこでも同じように壊れていました。これは、基本的には、querystring_authFalseのときには、x-amz-security-tokenがまだ設定されていることを指摘しています。

+0

これは私のためにうまくいった、ありがとう@amjoconn! – respondcreate

関連する問題