7

我正在使用 amazon s3 存储我所有的静态文件(通过 django-storages),做 PUT 比 GET 花费更多的钱。当我运行时manage.py collectstatic,Django 会为我拥有的每个静态文件执行 PUT。有没有办法让它首先检查文件是否已经改变,如果它没有不打扰 PUT?

4

1 回答 1

13

看来您需要做的就是安装 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)。

于 2012-02-26T20:20:37.837 回答