perf: remove full filesystem setup for accessing public link share dav endpoints

Signed-off-by: Robin Appelman <robin@icewind.nl>
pull/45998/head
Robin Appelman 1 year ago
parent 392ee62981
commit 7a9efcf4cc
  1. 15
      apps/dav/appinfo/v1/publicwebdav.php
  2. 18
      apps/dav/appinfo/v2/publicremote.php

@ -72,19 +72,20 @@ $server = $serverFactory->createServer($baseuri, $requestUri, $authPlugin, funct
});
\OC\Files\Filesystem::logWarningWhenAddingStorageWrapper($previousLog);
OC_Util::tearDownFS();
OC_Util::setupFS($owner);
$ownerView = new \OC\Files\View('/'. $owner . '/files');
$path = $ownerView->getPath($fileId);
$fileInfo = $ownerView->getFileInfo($path);
$linkCheckPlugin->setFileInfo($fileInfo);
$rootFolder = \OCP\Server::get(\OCP\Files\IRootFolder::class);
$userFolder = $rootFolder->getUserFolder($owner);
$node = $userFolder->getFirstNodeById($fileId);
if (!$node) {
throw new \Sabre\DAV\Exception\NotFound();
}
$linkCheckPlugin->setFileInfo($node);
// If not readable (files_drop) enable the filesdrop plugin
if (!$isReadable) {
$filesDropPlugin->enable();
}
$view = new \OC\Files\View($ownerView->getAbsolutePath($path));
$view = new \OC\Files\View($node->getPath());
$filesDropPlugin->setView($view);
return $view;

@ -101,24 +101,20 @@ $server = $serverFactory->createServer($baseuri, $requestUri, $authPlugin, funct
/** @psalm-suppress InternalMethod */
Filesystem::logWarningWhenAddingStorageWrapper($previousLog);
OC_Util::tearDownFS();
OC_Util::setupFS($owner);
$ownerView = new View('/'. $owner . '/files');
$path = $ownerView->getPath($fileId);
$fileInfo = $ownerView->getFileInfo($path);
if ($fileInfo === false) {
$rootFolder = \OCP\Server::get(\OCP\Files\IRootFolder::class);
$userFolder = $rootFolder->getUserFolder($owner);
$node = $userFolder->getFirstNodeById($fileId);
if (!$node) {
throw new NotFound();
}
$linkCheckPlugin->setFileInfo($node);
$linkCheckPlugin->setFileInfo($fileInfo);
// If not readble (files_drop) enable the filesdrop plugin
// If not readable (files_drop) enable the filesdrop plugin
if (!$isReadable) {
$filesDropPlugin->enable();
}
$view = new View($ownerView->getAbsolutePath($path));
$view = new View($node->getPath());
$filesDropPlugin->setView($view);
return $view;

Loading…
Cancel
Save