linkFactory = $linkFactory; $this->fileInfoManager = $fileInfoManager; $this->storeManager = $storeManager; } /** * Returns base url to file according to store configuration * * @param FileInfo $fileInfo * @return string */ private function getBaseUrl(FileInfo $fileInfo) { return $this->storeManager->getStore()->getBaseUrl(UrlInterface::URL_TYPE_MEDIA) . $fileInfo->getPath(); } /** * Verify is requested file ready * * @param FileInfo $fileInfo * @return bool */ private function isFileReady(FileInfo $fileInfo) { return $fileInfo->getPath() && $fileInfo->getInitializationVector(); } /** * @inheritdoc */ public function get() { $fileInfo = $this->fileInfoManager->load(); if (!$this->isFileReady($fileInfo)) { throw new NoSuchEntityException(__('File is not ready yet.')); } return $this->linkFactory->create( [ 'url' => $this->getBaseUrl($fileInfo), 'initializationVector' => base64_encode($fileInfo->getInitializationVector()) ] ); } }