Django:只收集更改的静态文件

时间:2012-02-26 18:41:33

标签: django amazon-s3 django-staticfiles django-storage

我正在使用amazon s3存储我的所有静态文件(通过django-storages),并且PUT的成本要高于GET。当我运行manage.py collectstatic时,Django为我拥有的每个静态文件执行PUT。有没有办法让它首先检查文件是否完全改变,如果它没有打扰PUT?

1 个答案:

答案 0 :(得分:12)

看来您需要做的就是安装python-dateutil:

pip install python-dateutil==1.2

如果没有这个django-storage,则不会因为这段代码而检查日期:

def modified_time(self, name):
  try:
    from dateutil import parser, tz
  except ImportError:
    raise NotImplementedError()

modified_time抛出一个错误,但django只是继续前进,因为它允许存储子类的modified_time方法未实现。我理解为什么他们这样做,因为这个功能并不是严格需要的。也就是说,如果有某种警告说明为什么一切都被上传,那就太好了。

请注意,我使用的是python-dateutil 1.2版。如果您使用最新版本的dateutil,则会出现django-storages错误(即django-storages版本1.1.4)。