gpt4 book ai didi

drupal - 永久删除 Drupal 8 中未使用/孤立的文件

转载 作者:行者123 更新时间:2023-12-03 23:16:23 25 4
gpt4 key购买 nike

我们在上传到我们其中一个网站的 PDF 中出现了一些严重错误。
但是在从 Drupal 中“删除”它之后,它仍然可以通过直接链接访问。 Drupal 似乎不会自行删除它。

我仍然可以在表 file_managed 中找到它,但在 file_usage 中找不到。
手动删除数据库行和文件是否安全?

已经在这里检查了所有关于 SO 的旧问题,但没有一个有效。

谢谢!

最佳答案

我知道这是一篇旧帖子,但我遇到了同样的问题,没有找到好的答案。

所以,经过一点点试错,我想出了这个:

<?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 报告使用文件的正确节点数,但情况可能并非总是如此。

关于drupal - 永久删除 Drupal 8 中未使用/孤立的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50149554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com