public static function getMetadata($fileName, $fullExtract = false)
    {
        $metadata = static::getBasicMetadata($fileName);

        if ($fullExtract && !empty($metadata)) {
            $virtualFileObject = static::getVirtualFileObject($fileName, $metadata);
            $extractorRegistry = \TYPO3\CMS\Core\Resource\Index\ExtractorRegistry::getInstance();
            $extractionServices = $extractorRegistry->getExtractorsWithDriverSupport('Local');

            $newMetadata = [
                0 => $metadata,
            ];
            foreach ($extractionServices as $service) {
                if ($service->canProcess($virtualFileObject)) {
                    $newMetadata[$service->getPriority()] = $service->extractMetaData($virtualFileObject, $newMetadata);
                }
            }
            ksort($newMetadata);
            foreach ($newMetadata as $data) {
                $metadata = array_merge($metadata, $data);
            }
        }

        return $metadata;
    }