Почему мои сжатые файлы на S3 возвращают ошибку 403 Forbidden? - PullRequest
2 голосов
/ 11 марта 2012

Я использую django-compress и django-хранилища для обслуживания моих сжатых файлов на S3 (используя следующие инструкции: http://django_compressor.readthedocs.org/en/latest/remote-storages/#using-staticfiles). Первоначально он прекрасно работает после запуска команды управления «compress», но примерно через час сжатые файлы 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 Ответ

8 голосов
/ 14 марта 2012

Мне удалось решить эту проблему, добавив эту строку в мой файл настроек:

AWS_QUERYSTRING_AUTH = False

Кредит переходит к blackrobot на github .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...