2012-03-10 89 views
2

我使用django-compressor和django-storage为S3上的压缩文件提供服务(使用这些指令:http://django_compressor.readthedocs.org/en/latest/remote-storages/#using-staticfiles)。它在运行“compress”管理命令后最初工作良好,但在大约一个小时后,即使我没有对文件进行任何更改,压缩后的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,并且在初始请求期间创建的压缩文件正常工作,并且已经过了一个多小时。但是,我宁愿使用管理命令预压缩这些文件。

回答

8

我能够加入这一行我的设置文件来解决此问题:

AWS_QUERYSTRING_AUTH = False 

幸得blackrobot on github

相关问题