diff options
-rw-r--r-- | lib/private/Files/ObjectStore/S3ConfigTrait.php | 3 | ||||
-rw-r--r-- | lib/private/Files/ObjectStore/S3ConnectionTrait.php | 8 | ||||
-rw-r--r-- | lib/private/Files/ObjectStore/S3ObjectTrait.php | 1 |
3 files changed, 9 insertions, 3 deletions
diff --git a/lib/private/Files/ObjectStore/S3ConfigTrait.php b/lib/private/Files/ObjectStore/S3ConfigTrait.php index b73cb7e484d..7f204507c22 100644 --- a/lib/private/Files/ObjectStore/S3ConfigTrait.php +++ b/lib/private/Files/ObjectStore/S3ConfigTrait.php @@ -34,6 +34,9 @@ trait S3ConfigTrait { protected string $bucket; + /** Maximum number of concurrent multipart uploads */ + protected int $concurrency; + protected int $timeout; protected string $proxy; diff --git a/lib/private/Files/ObjectStore/S3ConnectionTrait.php b/lib/private/Files/ObjectStore/S3ConnectionTrait.php index 2720902fa85..131014240f3 100644 --- a/lib/private/Files/ObjectStore/S3ConnectionTrait.php +++ b/lib/private/Files/ObjectStore/S3ConnectionTrait.php @@ -48,10 +48,10 @@ trait S3ConnectionTrait { protected string $id; - protected ?S3Client $connection; - protected bool $test; + protected ?S3Client $connection = null; + protected function parseParams($params) { if (empty($params['bucket'])) { throw new \Exception("Bucket has to be configured."); @@ -61,6 +61,8 @@ trait S3ConnectionTrait { $this->test = isset($params['test']); $this->bucket = $params['bucket']; + // Default to 5 like the S3 SDK does + $this->concurrency = $params['concurrency'] ?? 5; $this->proxy = $params['proxy'] ?? false; $this->timeout = $params['timeout'] ?? 15; $this->storageClass = !empty($params['storageClass']) ? $params['storageClass'] : 'STANDARD'; @@ -92,7 +94,7 @@ trait S3ConnectionTrait { * @throws \Exception if connection could not be made */ public function getConnection() { - if (!is_null($this->connection)) { + if ($this->connection !== null) { return $this->connection; } diff --git a/lib/private/Files/ObjectStore/S3ObjectTrait.php b/lib/private/Files/ObjectStore/S3ObjectTrait.php index 3019805389d..e0a94df1d99 100644 --- a/lib/private/Files/ObjectStore/S3ObjectTrait.php +++ b/lib/private/Files/ObjectStore/S3ObjectTrait.php @@ -129,6 +129,7 @@ trait S3ObjectTrait { protected function writeMultiPart(string $urn, StreamInterface $stream, string $mimetype = null): void { $uploader = new MultipartUploader($this->getConnection(), $stream, [ 'bucket' => $this->bucket, + 'concurrency' => $this->concurrency, 'key' => $urn, 'part_size' => $this->uploadPartSize, 'params' => [ |