Apakah ada cara untuk membuat daftar semua file yang tidak digunakan yang berada di dalam sistem file publik dan di dalam direktori tema dan mendaftarkannya, atau mungkin bahkan memiliki opsi untuk menghapusnya secara otomatis?
Maksud saya file yang saat ini tidak ditautkan dari stylesheet css atau dari node apa pun.
Jawaban:
Anda dapat menemukan file yatim dengan menjalankan kueri MySQL berikut:
Ini mengembalikan semua file yang tidak memiliki simpul terkait. Saya tidak yakin apakah aman untuk menghapus baris dan file yang dikembalikan, mungkin juga tergantung pada pengaturan modul Anda. Gunakan hanya dengan risiko Anda sendiri!
Sumber: http://drupal.org/node/733258#comment-5582764
sumber
Bagi mereka yang datang ke posting ini tiga tahun kemudian, ada modul kecil yang dapat Anda gunakan untuk melakukan ini yang disebut Fancy File Delete .
Pada saat posting ini, ini masih dalam versi beta, jadi gunakan dengan risiko Anda sendiri. Seperti biasa, membersihkan apa pun yang yatim melalui kueri DB dapat menjadi samar dan keberhasilannya sangat bergantung pada pengaturan modul khusus Anda.
sumber
Sesuatu yang dapat membantu mengidentifikasi " file yang tidak lagi dilampirkan ke node atau file dan direktori yang tidak ada dalam tabel file yang dikelola " (seperti dalam pertanyaan duplikat tentang " Bagaimana cara menghapus file yang tidak digunakan? "), Adalah menggunakan Modul Pemeriksa File . Beberapa perincian tentang itu, dari halaman proyeknya:
Jadi yang bisa Anda lakukan adalah seperti:
Catatan : meskipun pertanyaan ini tentang D7, itu adalah versi (alfa) dari itu juga untuk D8.
sumber
ada satu modul yang menghapus file yang tidak diinginkan menghapus file mewah .
sumber
Anda dapat menghapus file yang tidak digunakan oleh
Hapus secara manual dari tabel file_managed , oleh beberapa permintaan seperti
$this->database ->delete('file_managed') ->condition('fid', $fid, '=') ->execute();
Pengaturan status file 0 , untuk menandai adalah sebagai file sementara, sehingga cron akan menghapusnya setelah waktu tertentu.
$file = File::load ($fid); $file->setTemporary();
sumber
The File mewah hapus modul tidak bekerja sama sekali bagi saya. Berikut ini adalah alternatif yang lebih manual.
Untuk menghapus file dari folder yang tidak ada dalam tabel file yang dikelola, Anda dapat:
1) Buat daftar semua file yang dikelola:
2) Hapus semua file dari direktori yang tidak ada dalam daftar itu. Untuk melakukan ini, saya menggunakan skrip bash kecil:
Cukup ubah
IMG_FOLDER
variabel ke jalur folder apa pun yang Anda ingin hapus filenya (dan perbarui jalur ke file yang tidak termasuk Anda)sumber