2

S3 で圧縮ファイルを提供するために django-compressor と django-storages を使用しています (次の手順を使用します: http://django_compressor.readthedocs.org/en/latest/remote-storages/#using-staticfiles )。「圧縮」管理コマンドを実行した後、最初はうまく機能しますが、約 1 時間後に、ファイルに変更を加えていないにもかかわらず、圧縮された css および js ファイルが 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)  
}  

更新: これは、COMPRESS_OFFLINE が True の場合にのみ問題になるようです。False に設定すると、最初のリクエストで作成された圧縮ファイルが正しく機能し、1 時間以上経過しています。ただし、管理コマンドを使用してこれらのファイルを事前に圧縮することをお勧めします。

4

1 に答える 1

8

この行を設定ファイルに追加することで、この問題を解決できました。

AWS_QUERYSTRING_AUTH = False

クレジットはgithubのblackrobotに送られます。

于 2012-03-13T21:23:19.920 に答える