diff options
author | Robin Appelman <robin@icewind.nl> | 2021-02-23 17:32:23 +0100 |
---|---|---|
committer | backportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com> | 2022-12-20 15:30:39 +0000 |
commit | 783dae94cf9d0b7bf2165a59e48ecb57345aeebf (patch) | |
tree | bd6e186cb21b04ae64dc54b1ef0c8655bb582c63 | |
parent | 902d0600ce5f90672d39c103eb858d4430f7e9ab (diff) | |
download | nextcloud-server-783dae94cf9d0b7bf2165a59e48ecb57345aeebf.tar.gz nextcloud-server-783dae94cf9d0b7bf2165a59e48ecb57345aeebf.zip |
use mimetype from cache for workflow if available
Signed-off-by: Robin Appelman <robin@icewind.nl>
-rw-r--r-- | apps/workflowengine/lib/Check/FileMimeType.php | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/apps/workflowengine/lib/Check/FileMimeType.php b/apps/workflowengine/lib/Check/FileMimeType.php index 42b93bd9513..8213010af05 100644 --- a/apps/workflowengine/lib/Check/FileMimeType.php +++ b/apps/workflowengine/lib/Check/FileMimeType.php @@ -26,6 +26,7 @@ */ namespace OCA\WorkflowEngine\Check; +use OC\Files\Storage\Local; use OCA\WorkflowEngine\Entity\File; use OCP\Files\IMimeTypeDetector; use OCP\Files\Storage\IStorage; @@ -122,12 +123,15 @@ class FileMimeType extends AbstractStringCheck implements IFileCheck { if ($this->mimeType[$this->storage->getId()][$this->path] !== null) { return $this->mimeType[$this->storage->getId()][$this->path]; } - - if ($this->storage->is_dir($this->path)) { - return $this->cacheAndReturnMimeType($this->storage->getId(), $this->path, 'httpd/unix-directory'); + $cacheEntry = $this->storage->getCache()->get($this->path); + if ($cacheEntry && $cacheEntry->getMimeType() !== 'application/octet-stream') { + return $this->cacheAndReturnMimeType($this->storage->getId(), $this->path, $cacheEntry->getMimeType()); } - if ($this->storage->file_exists($this->path) && $this->storage->filesize($this->path)) { + if ($this->storage->file_exists($this->path) && + $this->storage->filesize($this->path) && + $this->storage->instanceOfStorage(Local::class) + ) { $path = $this->storage->getLocalFile($this->path); $mimeType = $this->mimeTypeDetector->detectContent($path); return $this->cacheAndReturnMimeType($this->storage->getId(), $this->path, $mimeType); |