getBackend()->writePreview($preview, $stream); } public function readPreview(Preview $preview): mixed { return $this->getBackend()->readPreview($preview); } public function deletePreview(Preview $preview): void { $this->getBackend()->deletePreview($preview); } private function getBackend(): IPreviewStorage { if ($this->backend) { return $this->backend; } if ($this->objectStoreConfig->hasObjectStore()) { $this->backend = new ObjectStorePreviewStorage($this->objectStoreConfig, $this->config, $this->previewMapper); } else { $this->backend = Server::get(LocalPreviewStorage::class); } return $this->backend; } public function migratePreview(Preview $preview, SimpleFile $file): void { $this->getBackend()->migratePreview($preview, $file); } public function scan(): int { return $this->getBackend()->scan(); } }