Czy istnieje sposób na wyświetlenie listy wszystkich nieużywanych plików znajdujących się w publicznym systemie plików oraz w katalogu motywów i ich listę, a może nawet opcję ich automatycznego usunięcia?
Mam na myśli pliki, które nie są obecnie połączone z żadnym arkuszem stylów css ani z żadnego węzła.
Odpowiedzi:
Możesz znaleźć osierocone pliki, uruchamiając następujące zapytanie MySQL:
Zwraca wszystkie pliki, które nie mają powiązanego węzła. Nie jestem pewien, czy bezpiecznie jest usunąć zwrócone wiersze i pliki, prawdopodobnie zależy to również od konfiguracji modułu. Używaj tylko na własne ryzyko!
Źródło: http://drupal.org/node/733258#comment-5582764
źródło
Dla tych, którzy przyjdą do tego postu trzy lata później, możesz użyć małego modułu o nazwie Fancy File Delete .
W momencie pisania tego posta jest on w fazie beta, więc używaj go na własne ryzyko. Jak zawsze, usuwanie osieroconych elementów za pomocą zapytań DB może być szkicowe, a jego sukces zależy w dużej mierze od konfiguracji konkretnego modułu.
źródło
Coś, co może pomóc w identyfikacji „ plików, które nie są już dołączone do węzłów lub plików i katalogów, które nie znajdują się w tabeli zarządzanej plikami ” (jak w zduplikowanym pytaniu na temat „ Jak usunąć nieużywane pliki? ”), Polega na użyciu Moduł sprawdzania plików . Kilka szczegółów na ten temat na stronie projektu:
Więc możesz to zrobić tak:
Uwaga : nawet jeśli to pytanie dotyczy D7, jest to wersja (alfa) również dla D8.
źródło
jest jeden moduł, który usuwa niechciane pliki fantazyjne usuwanie plików .
źródło
Możesz usunąć nieużywany plik przez
Usuń ręcznie z tabeli file_managed , przy pomocy jakiegoś zapytania
$this->database ->delete('file_managed') ->condition('fid', $fid, '=') ->execute();
Ustawienie statusu pliku 0 , aby oznaczyć jako plik tymczasowy, więc cron usunie go po pewnym czasie.
$file = File::load ($fid); $file->setTemporary();
źródło
The wymyślnego usuwania plików w ogóle dla mnie nie działał. Oto bardziej ręczna alternatywa.
Aby usunąć pliki z folderu, którego nie ma w zarządzanej tabeli plików, możesz:
1) Utwórz listę wszystkich zarządzanych plików:
2) Usuń wszystkie pliki z katalogu, którego nie ma na tej liście. Aby to zrobić, użyłem małego skryptu bash:
Po prostu zmień
IMG_FOLDER
zmienną na ścieżkę dowolnego folderu, z którego chcesz usunąć pliki (i zaktualizuj ścieżkę do pliku wykluczeń)źródło