From cf9bdc02749b1627f6cf556959952bafebb9f503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20M=C3=A9nab=C3=A9?= Date: Thu, 5 Jan 2023 16:06:56 +0100 Subject: [PATCH] Manage s3 storage class in objectstore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: François Ménabé --- lib/private/Files/ObjectStore/S3ConnectionTrait.php | 4 ++++ lib/private/Files/ObjectStore/S3ObjectTrait.php | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/private/Files/ObjectStore/S3ConnectionTrait.php b/lib/private/Files/ObjectStore/S3ConnectionTrait.php index bdda1f8bee8..09fdffe01bd 100644 --- a/lib/private/Files/ObjectStore/S3ConnectionTrait.php +++ b/lib/private/Files/ObjectStore/S3ConnectionTrait.php @@ -62,6 +62,9 @@ trait S3ConnectionTrait { /** @var string */ protected $proxy; + /** @var string */ + protected $storageClass; + /** @var int */ protected $uploadPartSize; @@ -81,6 +84,7 @@ trait S3ConnectionTrait { $this->bucket = $params['bucket']; $this->proxy = $params['proxy'] ?? false; $this->timeout = $params['timeout'] ?? 15; + $this->storageClass = !empty($params['storageClass']) ? $params['storageClass'] : 'STANDARD'; $this->uploadPartSize = $params['uploadPartSize'] ?? 524288000; $this->putSizeLimit = $params['putSizeLimit'] ?? 104857600; $params['region'] = empty($params['region']) ? 'eu-west-1' : $params['region']; diff --git a/lib/private/Files/ObjectStore/S3ObjectTrait.php b/lib/private/Files/ObjectStore/S3ObjectTrait.php index e6a2cf21cd0..33b9f6f7fed 100644 --- a/lib/private/Files/ObjectStore/S3ObjectTrait.php +++ b/lib/private/Files/ObjectStore/S3ObjectTrait.php @@ -105,6 +105,7 @@ trait S3ObjectTrait { 'Body' => $stream, 'ACL' => 'private', 'ContentType' => $mimetype, + 'StorageClass' => $this->storageClass, ]); } @@ -123,7 +124,8 @@ trait S3ObjectTrait { 'key' => $urn, 'part_size' => $this->uploadPartSize, 'params' => [ - 'ContentType' => $mimetype + 'ContentType' => $mimetype, + 'StorageClass' => $this->storageClass, ], ]);