【问题标题】:Why are my compressed files on S3 returning a 403 Forbidden error?为什么我在 S3 上的压缩文件返回 403 Forbidden 错误?
【发布时间】:2012-03-27 21:46:13
【问题描述】:

我正在使用 django-compressor 和 django-storages 在 S3 上提供我的压缩文件(使用这些说明:http://django_compressor.readthedocs.org/en/latest/remote-storages/#using-staticfiles)。运行“压缩”管理命令后,它最初运行良好,但大约一小时后,压缩的 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 并且在初始请求期间创建的压缩文件工作正常并且已经超过一个小时。但是,我更喜欢使用管理命令预压缩这些文件。

【问题讨论】:

    标签: django amazon-s3 boto django-staticfiles django-compressor


    【解决方案1】:

    我可以通过将此行添加到我的设置文件中来解决此问题:

    AWS_QUERYSTRING_AUTH = False
    

    归功于blackrobot on github

    【讨论】:

      猜你喜欢
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 2019-06-06
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多