Skip to content

Commit 6bbf547

Browse files
committed
B2B-1876: New directories in pub/media do not get synced back to local filesystem from S3 Remote Storage
1 parent 67c4235 commit 6bbf547

File tree

4 files changed

+17
-7
lines changed

4 files changed

+17
-7
lines changed

app/code/Magento/RemoteStorage/Filesystem.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ public function getDirectoryWrite($directoryCode, $driverCode = DriverPool::REMO
9595
$uri = $this->getUri($directoryCode) ?: '';
9696
$this->writeInstances[$code] = $this->writeFactory->create(
9797
$this->driverPool->getDriver()->getAbsolutePath('', $uri),
98-
$driverCode
98+
$driverCode,
99+
null,
100+
$directoryCode
99101
);
100102
}
101103

app/code/Magento/RemoteStorage/Model/Filesystem/Directory/Write.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class Write extends \Magento\Framework\Filesystem\Directory\Write
3333
* @param Filesystem $filesystem
3434
* @param int|null $createPermissions
3535
* @param PathValidatorInterface|null $pathValidator
36+
* @param string $directoryCode
3637
* @throws \Magento\Framework\Exception\FileSystemException
3738
*/
3839
public function __construct(
@@ -41,11 +42,12 @@ public function __construct(
4142
$path,
4243
Filesystem $filesystem,
4344
?int $createPermissions = null,
44-
?PathValidatorInterface $pathValidator = null
45+
?PathValidatorInterface $pathValidator = null,
46+
?string $directoryCode = DirectoryList::PUB
4547
) {
4648
parent::__construct($fileFactory, $driver, $path, $createPermissions, $pathValidator);
4749
$this->localDirectoryWrite = $filesystem->getDirectoryWrite(
48-
DirectoryList::PUB,
50+
$directoryCode,
4951
DriverPool::FILE
5052
);
5153
}

app/code/Magento/RemoteStorage/Model/Filesystem/Directory/WriteFactory.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,12 @@ public function __construct(
5050
/**
5151
* @inheritDoc
5252
*/
53-
public function create($path, $driverCode = DriverPool::REMOTE, $createPermissions = null)
54-
{
53+
public function create(
54+
$path,
55+
$driverCode = DriverPool::REMOTE,
56+
$createPermissions = null,
57+
$directoryCode = null
58+
) {
5559
if ($driverCode == DriverPool::REMOTE) {
5660
$driver = $this->driverPool->getDriver($driverCode);
5761
$factory = new \Magento\Framework\Filesystem\File\WriteFactory(
@@ -71,7 +75,8 @@ public function create($path, $driverCode = DriverPool::REMOTE, $createPermissio
7175
'driver' => $driver,
7276
'path' => $path,
7377
'createPermissions' => $createPermissions,
74-
'pathValidator' => $pathValidator
78+
'pathValidator' => $pathValidator,
79+
'directoryCode' => $directoryCode
7580
]
7681
);
7782
} else {

lib/internal/Magento/Framework/Filesystem/Directory/WriteFactory.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,10 @@ public function __construct(
4949
* @param string $path
5050
* @param string $driverCode
5151
* @param int $createPermissions
52+
* @param string $directoryCode
5253
* @return Write
5354
*/
54-
public function create($path, $driverCode = DriverPool::FILE, $createPermissions = null)
55+
public function create($path, $driverCode = DriverPool::FILE, $createPermissions = null, $directoryCode = null)
5556
{
5657
$driver = $this->driverPool->getDriver($driverCode);
5758
$factory = new \Magento\Framework\Filesystem\File\WriteFactory(

0 commit comments

Comments
 (0)