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/S3.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'lib/private/Files/ObjectStore/S3.php') diff --git a/lib/private/Files/ObjectStore/S3.php b/lib/private/Files/ObjectStore/S3.php index b1cd89388ae..d4e207f9002 100644 --- a/lib/private/Files/ObjectStore/S3.php +++ b/lib/private/Files/ObjectStore/S3.php @@ -25,6 +25,7 @@ namespace OC\Files\ObjectStore; use Aws\Result; use Exception; +use OCP\Files\FileInfo; use OCP\Files\ObjectStore\IObjectStore; use OCP\Files\ObjectStore\IObjectStoreMultiPartUpload; @@ -110,4 +111,16 @@ class S3 implements IObjectStore, IObjectStoreMultiPartUpload { 'UploadId' => $uploadId ]); } + + public function bytesUsed(): int { + // The only way to get the bytes used is by listing every object + // in the bucket and sum their size + return FileInfo::SPACE_UNKNOWN; + } + + public function bytesQuota(): int { + // The quota is not obtainable through the S3 API, only through the + // specific Amazon Service Quotas API + return FileInfo::SPACE_UNLIMITED; + } } -- cgit v1.2.3