2012-02-26 18 views
6

Estoy usando amazon s3 para almacenar todos mis archivos estáticos (a través de django-storage) y cuesta mucho más dinero hacer PUT que GET. Cuando ejecuto manage.py collectstatic, Django hace un PUT para cada archivo estático que tengo. ¿Hay alguna manera de que se compruebe primero para ver si el archivo ha cambiado y, si no lo ha hecho, no se moleste con el PUT?Django: Recolecte solamente los archivos estáticos cambiados

Respuesta

12

Parece que todo lo que tiene que hacer es instalar python-dateutil:

pip install python-dateutil==1.2 

Sin esta django-almacenamientos no comprobar las fechas a causa de este código:

def modified_time(self, name): 
    try: 
    from dateutil import parser, tz 
    except ImportError: 
    raise NotImplementedError() 

El modified_time arroja un error pero django simplemente continúa porque permite que el método modified_time de una subclase de almacenamiento no se implemente. Entiendo por qué lo hacen, porque esta funcionalidad no es estrictamente necesaria. Dicho esto, sería bueno tener algún tipo de advertencia que diga por qué se está cargando TODO.

Tenga en cuenta que estoy usando python-dateutil versión 1.2. Si usa la última versión de dateutil, obtendrá un error con django-storage (que es django-storage versión 1.1.4).

+0

Instalé python-dateutil == 2.1 con django-storages == 1.1.8 y funciona también. ¡Gracias! –

Cuestiones relacionadas