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

Kur*_*aum 6 django amazon-s3 django-storage django-staticfiles

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

Kur*_*aum 12

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

pip install python-dateutil==1.2
Run Code Online (Sandbox Code Playgroud)

没有这个django存储将不会检查日期,因为这段代码:

def modified_time(self, name):
  try:
    from dateutil import parser, tz
  except ImportError:
    raise NotImplementedError()
Run Code Online (Sandbox Code Playgroud)

modified_time抛出一个错误,但Django的只是不断去,因为它允许modified_time将未实现的存储子类的方法.我理解为什么他们这样做,因为这个功能并不是严格需要的.也就是说,有一些警告可以说明为什么一切都被上传了.

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