Django: собирать только измененные статические файлы - PullRequest
6 голосов
/ 26 февраля 2012

Я использую amazon s3 для хранения всех моих статических файлов (через django-хранилища), и PUT стоит намного больше денег, чем GET.Когда я запускаю manage.py collectstatic, Django делает PUT для каждого статического файла, который у меня есть.Есть ли способ, чтобы он сначала проверил, чтобы увидеть, изменился ли файл вообще, и не беспокоил ли он PUT?

1 Ответ

12 голосов
/ 27 февраля 2012

Похоже, все, что вам нужно сделать, это установить python-dateutil:

pip install python-dateutil==1.2

Без этого django-хранилища не будут проверять даты из-за этого кода:

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-хранилищами (то есть django-хранилищами версии 1.1.4).

...