]> source.dussan.org Git - nextcloud-server.git/commitdiff
Make X-HAS-{MD5/SHA256} opt-in 32686/head
authorCarl Schwan <carl@carlschwan.eu>
Wed, 1 Jun 2022 08:59:04 +0000 (10:59 +0200)
committerCarl Schwan <carl@carlschwan.eu>
Wed, 1 Jun 2022 08:59:04 +0000 (10:59 +0200)
This is not always needed and slow down the upload

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
apps/dav/lib/Connector/Sabre/File.php

index 37fb109a3bde0ffc3c488a9b4093e401c616ec9a..ebcfdabc6b3c097fda749157ff7e8b5c70ac1672 100644 (file)
@@ -215,15 +215,26 @@ class File extends Node implements IFile {
                                $data = $tmpData;
                        }
 
-                       $data = HashWrapper::wrap($data, 'md5', function ($hash) {
-                               $this->header('X-Hash-MD5: ' . $hash);
-                       });
-                       $data = HashWrapper::wrap($data, 'sha1', function ($hash) {
-                               $this->header('X-Hash-SHA1: ' . $hash);
-                       });
-                       $data = HashWrapper::wrap($data, 'sha256', function ($hash) {
-                               $this->header('X-Hash-SHA256: ' . $hash);
-                       });
+                       if ($this->request->getHeader('X-HASH') !== '') {
+                               $hash = $this->request->getHeader('X-HASH');
+                               if ($hash === 'all' || $hash === 'md5') {
+                                       $data = HashWrapper::wrap($data, 'md5', function ($hash) {
+                                               $this->header('X-Hash-MD5: ' . $hash);
+                                       });
+                               }
+
+                               if ($hash === 'all' || $hash === 'sha1') {
+                                       $data = HashWrapper::wrap($data, 'sha1', function ($hash) {
+                                               $this->header('X-Hash-SHA1: ' . $hash);
+                                       });
+                               }
+
+                               if ($hash === 'all' || $hash === 'sha256') {
+                                       $data = HashWrapper::wrap($data, 'sha256', function ($hash) {
+                                               $this->header('X-Hash-SHA256: ' . $hash);
+                                       });
+                               }
+                       }
 
                        if ($partStorage->instanceOfStorage(Storage\IWriteStreamStorage::class)) {
                                $isEOF = false;