2012-02-26 5 views
6

Sto usando amazon s3 per archiviare tutti i miei file statici (tramite django-storages) e costa molto più denaro per fare PUT di quanto non guadagni. Quando corro manage.py collectstatic, Django fa un PUT per ogni singolo file statico che ho. C'è un modo per farlo controllare prima di vedere se il file è stato modificato, e se non ha dato fastidio con il PUT?Django: raccoglie solo file statici modificati

risposta

12

Sembra che tutto quello che dovete fare è installare python-dateutil:

pip install python-dateutil==1.2 

Senza questo django-depositi non controllare le date a causa di questo codice:

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

Il modified_time genera un errore ma django continua a funzionare perché consente di non implementare il metodo modified_time di una sottoclasse di archiviazione. Capisco perché lo fanno, perché questa funzionalità non è strettamente necessaria. Detto questo, sarebbe bello avere una sorta di avvertimento che dice perché TUTTO è stato caricato.

Nota che sto usando python-dateutil versione 1.2. Se usi la versione più recente di dateutil, riceverai un errore con django-storages (che è la versione 1.1.4 di django-storages).

+0

Ho installato python-dateutil == 2.1 con django-storages == 1.1.8 e funziona anche. Grazie! –