![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-media-storage/Model/File/Storage/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\MediaStorage\Model\File\Storage; use Magento\Framework\Exception\FileSystemException; use Magento\Framework\Filesystem\Directory\WriteInterface as DirectoryWrite; use Magento\Framework\Filesystem\File\WriteInterface; /** * Synchronize files from Db storage to local file system */ class Synchronization { /** * Database storage factory * * @var DatabaseFactory */ protected $storageFactory; /** * File stream handler * * @var DirectoryWrite */ protected $mediaDirectory; /** * @param DatabaseFactory $storageFactory * @param DirectoryWrite $directory */ public function __construct( DatabaseFactory $storageFactory, DirectoryWrite $directory ) { $this->storageFactory = $storageFactory; $this->mediaDirectory = $directory; } /** * Synchronize file * * @param string $relativeFileName * @return void * @throws \LogicException */ public function synchronize($relativeFileName) { /** @var $storage Database */ $storage = $this->storageFactory->create(); try { $storage->loadByFilename($relativeFileName); } catch (\Exception $e) { } if ($storage->getId()) { /** @var WriteInterface $file */ $file = $this->mediaDirectory->openFile($relativeFileName, 'w'); try { $file->lock(); $file->write($storage->getContent()); $file->unlock(); $file->close(); } catch (FileSystemException $e) { $file->close(); } } } }