diff options
author | Florent <florent@coppint.com> | 2020-06-08 17:38:00 +0200 |
---|---|---|
committer | Florent <florent@coppint.com> | 2020-06-09 09:18:42 +0200 |
commit | 3594ba6971df3b070130f89e2b1f72ef5f9330bd (patch) | |
tree | 9a9fda1330e100a5b086aad6f880b4996f262df6 /lib | |
parent | d67f627ebac82bcf7d9f51d46407ecc5184c0405 (diff) | |
download | nextcloud-server-3594ba6971df3b070130f89e2b1f72ef5f9330bd.tar.gz nextcloud-server-3594ba6971df3b070130f89e2b1f72ef5f9330bd.zip |
Upload part size as S3 parameter instead of constant value
Some S3 providers need a custom upload part size (500 MB static value in Nextcloud).
Here is a commit to change this value via S3 configuration, instead of using S3_UPLOAD_PART_SIZE constant.
A new parameter is added for an S3 connection : uploadPartSize
Signed-off-by: Florent <florent@coppint.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Files/ObjectStore/S3ConnectionTrait.php | 4 | ||||
-rw-r--r-- | lib/private/Files/ObjectStore/S3ObjectTrait.php | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/lib/private/Files/ObjectStore/S3ConnectionTrait.php b/lib/private/Files/ObjectStore/S3ConnectionTrait.php index 5a619182238..0208df1908a 100644 --- a/lib/private/Files/ObjectStore/S3ConnectionTrait.php +++ b/lib/private/Files/ObjectStore/S3ConnectionTrait.php @@ -47,6 +47,9 @@ trait S3ConnectionTrait { /** @var int */ protected $timeout; + + /** @var int */ + protected $uploadPartSize; protected $test; @@ -60,6 +63,7 @@ trait S3ConnectionTrait { $this->test = isset($params['test']); $this->bucket = $params['bucket']; $this->timeout = !isset($params['timeout']) ? 15 : $params['timeout']; + $this->uploadPartSize = !isset($params['uploadPartSize']) ? 524288000 : $params['uploadPartSize']; $params['region'] = empty($params['region']) ? 'eu-west-1' : $params['region']; $params['hostname'] = empty($params['hostname']) ? 's3.' . $params['region'] . '.amazonaws.com' : $params['hostname']; if (!isset($params['port']) || $params['port'] === '') { diff --git a/lib/private/Files/ObjectStore/S3ObjectTrait.php b/lib/private/Files/ObjectStore/S3ObjectTrait.php index f749769cd09..d7c878178d2 100644 --- a/lib/private/Files/ObjectStore/S3ObjectTrait.php +++ b/lib/private/Files/ObjectStore/S3ObjectTrait.php @@ -33,8 +33,6 @@ use Aws\S3\S3Client; use Icewind\Streams\CallbackWrapper; use OC\Files\Stream\SeekableHttpStream; -const S3_UPLOAD_PART_SIZE = 524288000; // 500MB - trait S3ObjectTrait { /** * Returns the connection @@ -91,7 +89,7 @@ trait S3ObjectTrait { $uploader = new MultipartUploader($this->getConnection(), $countStream, [ 'bucket' => $this->bucket, 'key' => $urn, - 'part_size' => S3_UPLOAD_PART_SIZE, + 'part_size' => $this->uploadPartSize, ]); try { |