6
我正在使用亚马逊S3存储我的所有静态文件(通过django-storages),并且它花费更多的钱来做PUT而不是GET。当我运行manage.py collectstatic
时,Django为每个静态文件都执行PUT。有没有办法让它首先检查文件是否已经改变,如果它没有不打扰PUT?Django:只收集已更改的静态文件
我正在使用亚马逊S3存储我的所有静态文件(通过django-storages),并且它花费更多的钱来做PUT而不是GET。当我运行manage.py collectstatic
时,Django为每个静态文件都执行PUT。有没有办法让它首先检查文件是否已经改变,如果它没有不打扰PUT?Django:只收集已更改的静态文件
看来,所有你需要做的是安装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-storages(django-storage版本1.1.4)中得到一个错误。
我安装了python-dateutil == 2.1和django-storages == 1.1.8,它也可以。谢谢! – 2013-07-03 03:35:03