我正在使用 amazon s3 来存储我所有的静态文件(通过 django-storages),并且做 PUT 比做 GET 花费更多的钱。当我跑 manage.py collectstatic
, Django 为我拥有的每个静态文件执行 PUT。有没有办法让它先检查文件是否已经改变,如果没有就不要理会PUT?
最佳答案
看来您需要做的就是安装 python-dateutil:
pip install python-dateutil==1.2
由于此代码,没有此 django-storages 将不会检查日期:
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)。
关于Django:只收集更改的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9455937/