2012-03-10 29 views
2

私はS3で圧縮ファイルを提供するためにdjango-compressorとdjango-storageを使用しています(これらの命令を使って:http://django_compressor.readthedocs.org/en/latest/remote-storages/#using-staticfiles)。最初は "compress"管理コマンドを実行した後にうまくいきますが、約1時間後に圧縮されたcssファイルとjsファイルは、ファイルに変更を加えていないのに403 Forbiddenエラーを返します。私は問題を切り離すことができないので、どんな助けもありがたいです。ここでS3の圧縮ファイルが403 Forbiddenエラーを返すのはなぜですか?

は、私が使用しています設定は次のとおりです。

COMPRESS_ENABLED = True 
COMPRESS_URL = "http://mybucket.s3.amazonaws.com/" 
COMPRESS_STORAGE = 'sm.storage.CachedS3BotoStorage' 
COMPRESS_YUI_BINARY = os.path.join(PROJECT_ROOT, 'jars/yuicompressor-2.4.7.jar') 
COMPRESS_CSS_FILTERS = ['compressor.filters.yui.YUICSSFilter', 
'compressor.filters.css_default.CssAbsoluteFilter'] 
COMPRESS_JS_FILTERS = ['compressor.filters.yui.YUIJSFilter',] 
COMPRESS_OFFLINE = True 

STATICFILES_STORAGE = COMPRESS_STORAGE 
STATIC_URL = COMPRESS_URL 
STATIC_ROOT = '/path/to/static/' 
STATICFILES_DIRS = ( 
os.path.join(PROJECT_ROOT, 'static'), 
) 

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' # I'm using this for uploaded media 
AWS_ACCESS_KEY_ID = 'myaccesskey' 
AWS_SECRET_ACCESS_KEY = 'mysecretkey' 
AWS_STORAGE_BUCKET_NAME = 'mybucket' 
AWS_S3_FILE_OVERWRITE = True 

AWS_HEADERS = { 
'Cache-Control': 'public, max-age=31536000', #(1 year) 
} 

UPDATE:これはのみCOMPRESS_OFFLINEがTrueの時に問題になるようです。私はそれをFalseに設定し、最初の要求中に作成された圧縮ファイルは正しく動作しており、1時間以上経過しています。しかし、管理コマンドを使用してこれらのファイルをあらかじめ圧縮することをお勧めします。

答えて

8

私は私の設定ファイルに次の行を追加することでこの問題を解決することができました:クレジットはblackrobot on githubに行く

AWS_QUERYSTRING_AUTH = False 

関連する問題