File Silverstripe,查找未使用的媒体文件

File Silverstripe,查找未使用的媒体文件,file,silverstripe,File,Silverstripe,我有一个网站,有许多媒体文件,如5000,其中许多文件是未使用的。如何在SilverStripe DB上进行查询以查找未使用的记录并从DB和FS中删除if?首先循环查看数据对象和页面,检查has\u one、has\u many和many\u many关系,并检查类文件和图像。您可以使用类似$dataObjects=SS_ClassLoader::instance()->getManifest()->getgenderantsof('DataObject');和$pages=SS_ClassLo

我有一个网站,有许多媒体文件,如5000,其中许多文件是未使用的。如何在SilverStripe DB上进行查询以查找未使用的记录并从DB和FS中删除if?

首先循环查看数据对象和页面,检查has\u one、has\u many和many\u many关系,并检查类文件和图像。您可以使用类似$dataObjects=SS_ClassLoader::instance()->getManifest()->getgenderantsof('DataObject');和$pages=SS_ClassLoader::instance()->getManifest()->getgenderantsof('SiteTree');去上课。然后使用$classObject=Injector::inst()->get($className);并使用$classObject->has_one()、$classObject->has_many()和$classObject->many_many()来获取关系。将使用过的文件、图像存储在数组中,然后删除其余部分。您还需要检查HTMLText字段,以查看图像是否已内联放置。@GavinBruce对我来说,这听起来更像是一个答案,而不是一个注释。首先,在数据对象和页面中循环,并检查has_one,有很多很多关系,并检查类文件和图像。您可以使用类似$dataObjects=SS_ClassLoader::instance()->getManifest()->getgenderantsof('DataObject');和$pages=SS_ClassLoader::instance()->getManifest()->getgenderantsof('SiteTree');去上课。然后使用$classObject=Injector::inst()->get($className);并使用$classObject->has_one()、$classObject->has_many()和$classObject->many_many()来获取关系。将使用过的文件、图像存储在数组中,删除其余部分。您还需要检查HTMLText字段,查看图像是否已内联放置。@GavinBruce对我来说,这听起来更像是一个答案,而不是一个注释。