Używam django staticfiles + django-storages i Amazon S3 do przechowywania moich danych. Wszystko działa dobrze, ale za każdym razem, gdy uruchamiam manage.py collectstatic
, polecenie przesyła wszystkie pliki na serwer.Django StaticFiles i Amazon S3: jak wykrywać zmodyfikowane pliki?
Wygląda na to, że polecenie zarządzania porównuje sygnatury czasowe z Storage.modified_time()
, które nie są zaimplementowane w pamięci S3 z django-magazynów.
Jak ustalić, czy plik S3 został zmodyfikowany?
Mogłem przechowywać ścieżki plików i dane ostatniej modyfikacji w mojej bazie danych. Czy istnieje prosty sposób na pobranie ostatnio zmodyfikowanych danych z Amazon?
Inna opcja: wygląda na to, że mogę przypisać dowolne metadane z python-boto
, gdzie mogę umieścić lokalnie zmodyfikowaną datę, kiedy przesyłam za pierwszym razem.
W każdym razie wydaje się, że jest to powszechny problem, dlatego chciałbym zapytać, jakie rozwiązanie zastosowano w innych urządzeniach. Dzięki!
Jak korzystać z metody modified_time? Uruchomiono tylko ./manage.py collecstatic, nie działa dla mnie. Używa metody _save z botos3, aby zapisać pliki, ale w żadnym momencie nie sprawdza, czy plik jest nowy czy nie. Jakie jest twoje rozwiązanie? – duduklein
To wydaje się już nieaktualne: python-dateutil> 2.1 obsługuje teraz zarówno Python 2, jak i 3 we wspólnej bazie kodu i python-dateutil == 2.1 działa dobrze dla mnie z botos3. –
Hej Yuji; Zdaję sobie sprawę z tego samego problemu (bardzo powolna kolosie z S3Boto z kilkoma tysiącami plików). Zastanawiam się, gdzie się w tej sprawie spisałeś. Czy mógłbyś podsumować swoje najlepsze najlepsze rekomendacje, aby zoptymalizować ten proces, ponieważ wyraźnie zmarnowałeś czas na zmaganie się z tym problemem? –