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>
pull/39672/head
Max 2023-08-02 10:09:13 +07:00
parent 6ec35e3799
commit 2124fb9ff2
No known key found for this signature in database
GPG Key ID: 0F5BFA367A00BACE
1 changed files with 2 additions and 2 deletions

@ -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");
}