From dd510dfe70782fba38d068e9180fe95cf9bf5a5a Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Thu, 1 Sep 2022 17:28:18 +0200 Subject: Allow to mesure free space in object storages, based on used size and quota If the object storage backend doesn't return quota or used bytes information, use a config override for the quota and count the size used in Nextcloud instead. Signed-off-by: Thomas Citharel --- lib/private/Files/ObjectStore/Swift.php | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'lib/private/Files/ObjectStore/Swift.php') diff --git a/lib/private/Files/ObjectStore/Swift.php b/lib/private/Files/ObjectStore/Swift.php index b463cb9d44d..5a8860a6d51 100644 --- a/lib/private/Files/ObjectStore/Swift.php +++ b/lib/private/Files/ObjectStore/Swift.php @@ -29,6 +29,7 @@ use GuzzleHttp\Client; use GuzzleHttp\Exception\BadResponseException; use GuzzleHttp\Psr7\Utils; use Icewind\Streams\RetryWrapper; +use OCP\Files\FileInfo; use OCP\Files\NotFoundException; use OCP\Files\ObjectStore\IObjectStore; use OCP\Files\StorageAuthException; @@ -152,4 +153,12 @@ class Swift implements IObjectStore { 'destination' => $this->getContainer()->name . '/' . $to ]); } + + public function bytesUsed(): int { + return $this->getContainer()->bytesUsed; + } + + public function bytesQuota(): int { + return $this->getContainer()->getMetadata()['Quota-Bytes'] ?? FileInfo::SPACE_UNLIMITED; + } } -- cgit v1.2.3