Я знаю, что это старый пост, но у меня была та же проблема, и я не нашел хорошего ответа.
Итак, после небольшой пробной ошибки я пришел к следующему:
<?php
// Some nice ideas from:
// https://stackoverflow.com/questions/52455491/how-to-set-file-usage-on-drupal-8
$file_storage = \Drupal::entityTypeManager()->getStorage('file');
$fids = Drupal::entityQuery('file')->condition('status', 1)->execute();
$file_usage = Drupal::service('file.usage');
foreach ($fids as $fid) {
$file = Drupal\file\Entity\File::load($fid);
$usage = $file_usage->listUsage($file);
if(count($usage) == 0) {
$file->delete();
}
}
Будьте осторожны, код полагается на то, что Drupal сообщает правильное количество узлов, где используется файл, и это может не помочь.
Надеюсь, это может быть полезно, если не для sbo , для кого-то еще.