diff --git a/composer/composer/autoload_classmap.php b/composer/composer/autoload_classmap.php index 5729adfcd0..7eea049fb2 100644 --- a/composer/composer/autoload_classmap.php +++ b/composer/composer/autoload_classmap.php @@ -72,6 +72,7 @@ 'OCA\\Richdocuments\\Service\\FileTargetService' => $baseDir . '/../lib/Service/FileTargetService.php', 'OCA\\Richdocuments\\Service\\FontService' => $baseDir . '/../lib/Service/FontService.php', 'OCA\\Richdocuments\\Service\\InitialStateService' => $baseDir . '/../lib/Service/InitialStateService.php', + 'OCA\\Richdocuments\\Service\\RemoteOptionsService' => $baseDir . '/../lib/Service/RemoteOptionsService.php', 'OCA\\Richdocuments\\Service\\RemoteService' => $baseDir . '/../lib/Service/RemoteService.php', 'OCA\\Richdocuments\\Service\\UserScopeService' => $baseDir . '/../lib/Service/UserScopeService.php', 'OCA\\Richdocuments\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', diff --git a/composer/composer/autoload_static.php b/composer/composer/autoload_static.php index 534ce764ff..f2ee2a14f1 100644 --- a/composer/composer/autoload_static.php +++ b/composer/composer/autoload_static.php @@ -87,6 +87,7 @@ class ComposerStaticInitRichdocuments 'OCA\\Richdocuments\\Service\\FileTargetService' => __DIR__ . '/..' . '/../lib/Service/FileTargetService.php', 'OCA\\Richdocuments\\Service\\FontService' => __DIR__ . '/..' . '/../lib/Service/FontService.php', 'OCA\\Richdocuments\\Service\\InitialStateService' => __DIR__ . '/..' . '/../lib/Service/InitialStateService.php', + 'OCA\\Richdocuments\\Service\\RemoteOptionsService' => __DIR__ . '/..' . '/../lib/Service/RemoteOptionsService.php', 'OCA\\Richdocuments\\Service\\RemoteService' => __DIR__ . '/..' . '/../lib/Service/RemoteService.php', 'OCA\\Richdocuments\\Service\\UserScopeService' => __DIR__ . '/..' . '/../lib/Service/UserScopeService.php', 'OCA\\Richdocuments\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', diff --git a/lib/Preview/Office.php b/lib/Preview/Office.php index 747b082b9f..4ec6ab7a21 100644 --- a/lib/Preview/Office.php +++ b/lib/Preview/Office.php @@ -23,6 +23,8 @@ use OC\Preview\Provider; use OCA\Richdocuments\Capabilities; +use OCA\Richdocuments\Service\RemoteOptionsService; +use OCP\Files\FileInfo; use OCP\Http\Client\IClientService; use OCP\IConfig; use OCP\ILogger; @@ -53,7 +55,7 @@ private function getWopiURL() { return $this->config->getAppValue('richdocuments', 'wopi_url'); } - public function isAvailable(\OCP\Files\FileInfo $file) { + public function isAvailable(FileInfo $file) { if (isset($this->capabilitites['collabora']['convert-to']['available'])) { return (bool)$this->capabilitites['collabora']['convert-to']['available']; } @@ -78,11 +80,9 @@ public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { } $client = $this->clientService->newClient(); - $options = [ - 'timeout' => 25, - // FIXME: Can be removed once https://github.com/CollaboraOnline/online/issues/6983 is fixed upstream - 'expect' => false, - ]; + $options = RemoteOptionsService::getDefaultOptions(); + // FIXME: can be removed once https://github.com/CollaboraOnline/online/issues/6983 is fixed upstream + $options['expect'] = false; if ($this->config->getAppValue('richdocuments', 'disable_certificate_verification') === 'yes') { $options['verify'] = false; diff --git a/lib/Service/RemoteOptionsService.php b/lib/Service/RemoteOptionsService.php new file mode 100644 index 0000000000..860e832f56 --- /dev/null +++ b/lib/Service/RemoteOptionsService.php @@ -0,0 +1,23 @@ + $timeout, + 'nextcloud' => [ + 'allow_local_address' => true, + ] + ]; + } + +} diff --git a/lib/Service/RemoteService.php b/lib/Service/RemoteService.php index fff74edb6f..2b1d2490d7 100644 --- a/lib/Service/RemoteService.php +++ b/lib/Service/RemoteService.php @@ -10,9 +10,6 @@ use Psr\Log\LoggerInterface; class RemoteService { - - public const REMOTE_TIMEOUT_DEFAULT = 25; - public function __construct( private AppConfig $appConfig, private IClientService $clientService, @@ -66,12 +63,10 @@ private function getRequestOptionsForFile(File $file, ?string $target = null): a $stream = $file->fopen('rb'); } - $options = [ - 'timeout' => self::REMOTE_TIMEOUT_DEFAULT, - 'multipart' => [ - ['name' => $file->getName(), 'contents' => $stream], - ['name' => 'target', 'contents' => $target] - ] + $options = RemoteOptionsService::getDefaultOptions(25); + $options['multipart'] = [ + ['name' => $file->getName(), 'contents' => $stream], + ['name' => 'target', 'contents' => $target] ]; if ($this->appConfig->getDisableCertificateValidation()) {