111 \
Magento\Framework\
App\Config\ScopeConfigInterface $scopeConfig,
112 \
Magento\Framework\
App\Config\ScopeConfigInterface $coreConfig,
114 \
Magento\MediaStorage\Model\File\
Storage\FileFactory $fileFactory,
115 \
Magento\MediaStorage\Model\File\
Storage\DatabaseFactory $databaseFactory,
118 \
Magento\Framework\Data\Collection\AbstractDb $resourceCollection =
null,
121 $this->_coreFileStorage = $coreFileStorage;
122 $this->_scopeConfig = $scopeConfig;
123 $this->_coreConfig = $coreConfig;
124 $this->_fileFlag = $fileFlag;
125 $this->_fileFactory = $fileFactory;
126 $this->_databaseFactory = $databaseFactory;
140 if (!$sourceModel || !$destinationModel) {
144 return $sourceModel->hasErrors() || $destinationModel->hasErrors();
154 return $this->_fileFlag->loadSelf();
172 if ($storage ===
null) {
173 $storage = $this->_coreFileStorage->getCurrentStorageCode();
178 $model = $this->_fileFactory->create();
209 if (is_array($storage) && isset($storage[
'type'])) {
210 $storageDest = (int)$storage[
'type'];
211 $connection = isset($storage[
'connection']) ? $storage[
'connection'] :
null;
215 if ($storageDest ==
$helper->getCurrentStorageCode() &&
$helper->isInternalStorage()) {
225 if (!$sourceModel || !$destinationModel) {
232 'source' => $sourceModel->getStorageName(),
233 'destination' => $destinationModel->getStorageName(),
234 'destination_storage_type' => $storageDest,
235 'destination_connection_name' => (string)$destinationModel->getConnectionName(),
236 'has_errors' =>
false,
237 'timeout_reached' =>
false,
239 $flag->setFlagData($flagData);
241 $destinationModel->clear();
244 while (($dirs = $sourceModel->exportDirectories($offset)) !==
false) {
245 $flagData[
'timeout_reached'] =
false;
249 $flagData[
'has_errors'] =
true;
253 $flag->setFlagData($flagData)->save();
255 $destinationModel->importDirectories($dirs);
256 $offset += count($dirs);
261 while ((
$files = $sourceModel->exportFiles($offset, 1)) !==
false) {
262 $flagData[
'timeout_reached'] =
false;
266 $flagData[
'has_errors'] =
true;
270 $flag->setFlagData($flagData)->save();
272 $destinationModel->importFiles(
$files);
291 $allowedResources = $this->_coreConfig->getValue(self::XML_PATH_MEDIA_RESOURCE_WHITELIST,
'default');
293 $config[
'allowed_resources'][] = $allowedResource;
296 $config[
'update_time'] = $this->_scopeConfig->getValue(
297 self::XML_PATH_MEDIA_UPDATE_TIME,
298 \
Magento\Store\Model\ScopeInterface::SCOPE_STORE
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
foreach($appDirs as $dir) $files