Uh oh!
There was an error while loading. Please reload this page.
allow setting s3 concurrency, proxy, timeout, uploadPartSize, putSizeLimit, version, and verify_bucket_exists - #2271
Conversation
Uh oh!
There was an error while loading. Please reload this page.
c355acb to
040b741CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
jessebot
commented
Oct 14, 2024
@joshtrichards wanted to gently follow up and ask if anything else is needed here? |
jessebot
commented
Dec 13, 2024
@J0WI or @joshtrichards can I ask if there's anything else needed here to get this merged into the default branch? Sorry to be a pest. I just want to make sure this gets merged so we can support it in the helm chart properly. |
10d6edd to
2b545eaCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
d7baf2f to
1581991Comparejessebot
commented
Jan 5, 2025
@joshtrichards or @J0WI could you take another look at this when you have a moment? |
| - `OBJECTSTORE_S3_CONCURRENCY` defines the maximum number of concurrent multipart uploads | ||
| - `OBJECTSTORE_S3_PROXY` (default: `false`) | ||
| - `OBJECTSTORE_S3_TIMEOUT` (not set by default) | ||
| - `OBJECTSTORE_S3_UPLOADPARTSIZE` (not set by default) | ||
| - `OBJECTSTORE_S3_PUTSIZELIMIT` (not set by default) | ||
| - `OBJECTSTORE_S3_USEMULTIPARTCOPY` (default: `false`) | ||
| - `OBJECTSTORE_S3_COPYSIZELIMIT` (not set by default) | ||
| - `OBJECTSTORE_S3_VERSION` (default: `latest`) | ||
| - `OBJECTSTORE_S3_VERIFY_BUCKET_EXISTS` (default: `true`) Setting this to `false` after confirming the bucket has been created may provide a performance benefit, but may not be possible in multibucket scenarios. |
There was a problem hiding this comment.
@J0WI how's this? I now only set an int value if it is provided, this way, no one has to find out if empty string breaks stuff. I still set default strings and default booleans though, as we do that everywhere else as well and I want to be consistent. I know that if these new int s3 values are not set, it doesn't break anything, so this should be the best of both worlds right? :)
| if $concurrency { | ||
| $CONFIG['objectstore']['arguments']['concurrency'] = $concurrency; | ||
| } | ||
| if $timeout { | ||
| $CONFIG['objectstore']['arguments']['timeout'] = $timeout; | ||
| } | ||
| if $upload_part_size { | ||
| $CONFIG['objectstore']['arguments']['uploadPartSize'] = $upload_part_size; | ||
| } | ||
| if $put_size_limit { | ||
| $CONFIG['objectstore']['arguments']['putSizeLimit'] = $put_size_limit; | ||
| } | ||
| if $copy_size_limit { | ||
| $CONFIG['objectstore']['arguments']['copySizeLimit'] = $copy_size_limit; | ||
| } |
There was a problem hiding this comment.
these are now all conditionally set by the variables defined at the top of the file that check the env vars.
There was a problem hiding this comment.
I like this approach but all tests are failing
There was a problem hiding this comment.
hmmm, I don't know why... I am terrible at php. I'll try to take a look this weekend
c29fea3 to
e35ea1eCompareyaleman
commented
Apr 10, 2025
Any chance of an update on this? It's blocking using the helm chart 😢 |
…Limit, version, and verify_bucket_exists Signed-off-by: jessebot <jessebot@linux.com>
Signed-off-by: Jesse Hitch <jessebot@linux.com>
Signed-off-by: Jesse Hitch <jessebot@linux.com>
Signed-off-by: Jesse Hitch <jessebot@linux.com>
Signed-off-by: jessebot <jessebot@linux.com>
e35ea1e to
1bfb735Compare
J0WI
left a comment
There was a problem hiding this comment.
Something appears to be wrong in the syntax. all tests are failing.
| 'use_path_style' => $use_path == true && strtolower($use_path) !== 'false', | ||
| // required for older protocol versions | ||
| 'legacy_auth' => $use_legacyauth == true && strtolower($use_legacyauth) !== 'false' | ||
| 'useMultipartCopy' => strtolower($useMultipartCopy) !== 'true', |
There was a problem hiding this comment.
| 'useMultipartCopy' => strtolower($useMultipartCopy) !== 'true', | |
| 'useMultipartCopy' => strtolower($use_multipart_copy) !== 'true', |
There was a problem hiding this comment.
Or even just strtolower($use_multipart_copy) === 'true',?
| // required for older protocol versions | ||
| 'legacy_auth' => $use_legacyauth == true && strtolower($use_legacyauth) !== 'false' | ||
| 'useMultipartCopy' => strtolower($useMultipartCopy) !== 'true', | ||
| 'legacy_auth' => $use_legacyauth == true && strtolower($use_legacyauth) !== 'false', |
There was a problem hiding this comment.
| 'legacy_auth' => $use_legacyauth == true && strtolower($use_legacyauth) !== 'false', | |
| 'legacy_auth' => strtolower($use_path) === 'true', |
| ) | ||
| ); | ||
| if $concurrency { |
There was a problem hiding this comment.
missing brackets around conditions.
SamyDjemai
commented
Nov 7, 2025
Hi @jessebot, any update on this? Not being able to set |
Adds missing S3 related environment variables. Fixes#2270
Per the docs here's the missing supported S3 parameters:
concurrencydefaults to 5 [Note: This defines the maximum number of concurrent multipart uploads]proxydefaults tofalsetimeoutdefaults to 15uploadPartSizedefaults to 524288000putSizeLimitdefaults to 104857600versiondefaults to latestuseMultipartCopydefaults totruecopySizeLimitdefaults to 5242880000verify_bucket_existsdefaults totrue[Note: Setting this to false after confirming the bucket has been created may provide a performance benefit, but may not be possible in multibucket scenarios.]This also helps us get ready to merge nextcloud/helm#614 downstream 🙏
Let me know if you need anything else :)