From 61fda520365e724c165d3329b3a534ba07944ab5 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 26 Jul 2024 14:38:29 +0200 Subject: [PATCH 1/4] allow setting s3 concurrency, proxy, timeout, uploadPartSize, putSizeLimit, version, and verify_bucket_exists Signed-off-by: jessebot --- .config/s3.config.php | 9 ++++++++- README.md | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.config/s3.config.php b/.config/s3.config.php index a17e4037..31f9dab0 100644 --- a/.config/s3.config.php +++ b/.config/s3.config.php @@ -19,7 +19,14 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { // required for some non Amazon S3 implementations 'use_path_style' => $use_path == true && strtolower($use_path) !== 'false', // required for older protocol versions - 'legacy_auth' => $use_legacyauth == true && strtolower($use_legacyauth) !== 'false' + 'legacy_auth' => $use_legacyauth == true && strtolower($use_legacyauth) !== 'false', + 'concurrency' => getenv('OBJECTSTORE_S3_CONCURRENCY') ?: 5, + 'proxy' => getenv('OBJECTSTORE_S3_PROXY') ?: false, + 'timeout' => getenv('OBJECTSTORE_S3_TIMEOUT') ?: 15, + 'uploadPartSize' => getenv('OBJECTSTORE_S3_UPLOADPARTSIZE') ?: 524288000, + 'putSizeLimit' => getenv('OBJECTSTORE_S3_PUTSIZELIMIT') ?: 104857600, + 'version' => getenv('OBJECTSTORE_S3_VERSION') ?: "latest", + 'verify_bucket_exists' => getenv('OBJECTSTORE_S3_VERIFY_BUCKET_EXISTS') ?: true ) ) ); diff --git a/README.md b/README.md index 6745faa3..be812b6c 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,13 @@ To use an external S3 compatible object store as primary storage, set the follow - `OBJECTSTORE_S3_OBJECT_PREFIX` (default: `urn:oid:`): Prefix to prepend to the fileid - `OBJECTSTORE_S3_AUTOCREATE` (default: `true`): Create the container if it does not exist - `OBJECTSTORE_S3_SSE_C_KEY` (not set by default): Base64 encoded key with a maximum length of 32 bytes for server side encryption (SSE-C) +- `OBJECTSTORE_S3_CONCURRENCY` (default: `5`) defines the maximum number of concurrent multipart uploads +- `OBJECTSTORE_S3_PROXY` (default: `false`) +- `OBJECTSTORE_S3_TIMEOUT` (default: `15`) +- `OBJECTSTORE_S3_UPLOADPARTSIZE` (default: `524288000`) +- `OBJECTSTORE_S3_PUTSIZELIMIT` (default: `104857600`) +- `OBJECTSTORE_S3_VERSION` (default: `latest`) +- `OBJECTSTORE_S3_VERIFY_BUCKET_EXISTS` (default: `true`) Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. From f925ce2306531df5b265535cfb99831c8f4cfd70 Mon Sep 17 00:00:00 2001 From: Jesse Hitch Date: Tue, 24 Sep 2024 11:14:06 +0200 Subject: [PATCH 2/4] Update .config/s3.config.php - don't set defaults for new s3 values Signed-off-by: Jesse Hitch --- .config/s3.config.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.config/s3.config.php b/.config/s3.config.php index 31f9dab0..a3464fc7 100644 --- a/.config/s3.config.php +++ b/.config/s3.config.php @@ -20,13 +20,13 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { 'use_path_style' => $use_path == true && strtolower($use_path) !== 'false', // required for older protocol versions 'legacy_auth' => $use_legacyauth == true && strtolower($use_legacyauth) !== 'false', - 'concurrency' => getenv('OBJECTSTORE_S3_CONCURRENCY') ?: 5, - 'proxy' => getenv('OBJECTSTORE_S3_PROXY') ?: false, - 'timeout' => getenv('OBJECTSTORE_S3_TIMEOUT') ?: 15, - 'uploadPartSize' => getenv('OBJECTSTORE_S3_UPLOADPARTSIZE') ?: 524288000, - 'putSizeLimit' => getenv('OBJECTSTORE_S3_PUTSIZELIMIT') ?: 104857600, - 'version' => getenv('OBJECTSTORE_S3_VERSION') ?: "latest", - 'verify_bucket_exists' => getenv('OBJECTSTORE_S3_VERIFY_BUCKET_EXISTS') ?: true + 'concurrency' => getenv('OBJECTSTORE_S3_CONCURRENCY') ?: '', + 'proxy' => getenv('OBJECTSTORE_S3_PROXY') ?: '', + 'timeout' => getenv('OBJECTSTORE_S3_TIMEOUT') ?: '', + 'uploadPartSize' => getenv('OBJECTSTORE_S3_UPLOADPARTSIZE') ?:'', + 'putSizeLimit' => getenv('OBJECTSTORE_S3_PUTSIZELIMIT') ?: '', + 'version' => getenv('OBJECTSTORE_S3_VERSION') ?: '', + 'verify_bucket_exists' => getenv('OBJECTSTORE_S3_VERIFY_BUCKET_EXISTS') ?: '' ) ) ); From 290d81f07bedfb14aa78fe223813a12aacaea86e Mon Sep 17 00:00:00 2001 From: Jesse Hitch Date: Thu, 2 Jan 2025 17:18:28 +0100 Subject: [PATCH 3/4] Update README.md Signed-off-by: Jesse Hitch --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index be812b6c..3ebfa045 100644 --- a/README.md +++ b/README.md @@ -278,12 +278,12 @@ To use an external S3 compatible object store as primary storage, set the follow - `OBJECTSTORE_S3_AUTOCREATE` (default: `true`): Create the container if it does not exist - `OBJECTSTORE_S3_SSE_C_KEY` (not set by default): Base64 encoded key with a maximum length of 32 bytes for server side encryption (SSE-C) - `OBJECTSTORE_S3_CONCURRENCY` (default: `5`) defines the maximum number of concurrent multipart uploads -- `OBJECTSTORE_S3_PROXY` (default: `false`) -- `OBJECTSTORE_S3_TIMEOUT` (default: `15`) -- `OBJECTSTORE_S3_UPLOADPARTSIZE` (default: `524288000`) -- `OBJECTSTORE_S3_PUTSIZELIMIT` (default: `104857600`) -- `OBJECTSTORE_S3_VERSION` (default: `latest`) -- `OBJECTSTORE_S3_VERIFY_BUCKET_EXISTS` (default: `true`) +- `OBJECTSTORE_S3_PROXY` (default: `''`) +- `OBJECTSTORE_S3_TIMEOUT` (default: `''`) +- `OBJECTSTORE_S3_UPLOADPARTSIZE` (default: `''`) +- `OBJECTSTORE_S3_PUTSIZELIMIT` (default: `''`) +- `OBJECTSTORE_S3_VERSION` (default: `''`) +- `OBJECTSTORE_S3_VERIFY_BUCKET_EXISTS` (default: `''`) Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. From 15819916641a03ec752e7a4dcbb4c6312797b4e7 Mon Sep 17 00:00:00 2001 From: Jesse Hitch Date: Thu, 2 Jan 2025 17:18:51 +0100 Subject: [PATCH 4/4] Update README.md Signed-off-by: Jesse Hitch --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3ebfa045..99064665 100644 --- a/README.md +++ b/README.md @@ -277,7 +277,7 @@ To use an external S3 compatible object store as primary storage, set the follow - `OBJECTSTORE_S3_OBJECT_PREFIX` (default: `urn:oid:`): Prefix to prepend to the fileid - `OBJECTSTORE_S3_AUTOCREATE` (default: `true`): Create the container if it does not exist - `OBJECTSTORE_S3_SSE_C_KEY` (not set by default): Base64 encoded key with a maximum length of 32 bytes for server side encryption (SSE-C) -- `OBJECTSTORE_S3_CONCURRENCY` (default: `5`) defines the maximum number of concurrent multipart uploads +- `OBJECTSTORE_S3_CONCURRENCY` (default: `''`) defines the maximum number of concurrent multipart uploads - `OBJECTSTORE_S3_PROXY` (default: `''`) - `OBJECTSTORE_S3_TIMEOUT` (default: `''`) - `OBJECTSTORE_S3_UPLOADPARTSIZE` (default: `''`)