summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2021-02-23 17:32:23 +0100
committerblizzz (Rebase PR Action) <blizzz@users.noreply.github.com>2023-02-07 17:26:32 +0000
commite48d50315dc4efcb83e62d1c1ecd746987f4a43f (patch)
tree3cb8890c6136aa87ac2d1b339310c9afbe1572b4
parent080de5058ba03cb3d1458f297066f21cfe8a64b2 (diff)
downloadnextcloud-server-e48d50315dc4efcb83e62d1c1ecd746987f4a43f.tar.gz
nextcloud-server-e48d50315dc4efcb83e62d1c1ecd746987f4a43f.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.php12
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);