diff options
author | Max <max@nextcloud.com> | 2023-08-02 10:09:13 +0200 |
---|---|---|
committer | backportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com> | 2023-08-02 12:10:57 +0000 |
commit | e9c9fb4bd3c1be53969b9793ef78898b50aa3d5d (patch) | |
tree | 3392595e937c1fa6f1d7102ca029e85b45b877f6 | |
parent | c908faa3c58848ea0f1f2ca02f6257615b35971f (diff) | |
download | nextcloud-server-e9c9fb4bd3c1be53969b9793ef78898b50aa3d5d.tar.gz nextcloud-server-e9c9fb4bd3c1be53969b9793ef78898b50aa3d5d.zip |
fix(dav): use quota of destination in s3 chunk upload
Resolves: #39228.
Check the free space on the destination.
Before it was checking the free space on `$storage`
which is the upload storage of the user who triggered the upload.
This led to user quota being applied
even when uploading to a share with unlimited space.
Signed-off-by: Max <max@nextcloud.com>
-rw-r--r-- | apps/dav/lib/Upload/ChunkingV2Plugin.php | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/apps/dav/lib/Upload/ChunkingV2Plugin.php b/apps/dav/lib/Upload/ChunkingV2Plugin.php index d3673c6bde7..97ae51fbe38 100644 --- a/apps/dav/lib/Upload/ChunkingV2Plugin.php +++ b/apps/dav/lib/Upload/ChunkingV2Plugin.php @@ -168,7 +168,7 @@ class ChunkingV2Plugin extends ServerPlugin { [$destinationDir, $destinationName] = Uri\split($this->uploadPath); /** @var Directory $destinationParent */ $destinationParent = $this->server->tree->getNodeForPath($destinationDir); - $free = $storage->free_space($destinationParent->getInternalPath()); + $free = $destinationParent->getNode()->getFreeSpace(); $newSize = $tempTargetFile->getSize() + $additionalSize; if ($free >= 0 && ($tempTargetFile->getSize() > $free || $newSize > $free)) { throw new InsufficientStorage("Insufficient space in $this->uploadPath"); @@ -225,7 +225,7 @@ class ChunkingV2Plugin extends ServerPlugin { foreach ($parts as $part) { $size += $part['Size']; } - $free = $storage->free_space($destinationParent->getInternalPath()); + $free = $destinationParent->getNode()->getFreeSpace(); if ($free >= 0 && ($size > $free)) { throw new InsufficientStorage("Insufficient space in $this->uploadPath"); } |