Disable pre-generated S3 multipart URLs when Workhorse client used
When consolidated storage or IAM instance profiles are in use for S3, Workhorse uses its own S3 client and handles multipart uploads without needing the pre-generated values from Rails. The problem is that these pre-generated multipart URLs were never completed or aborted if the S3 client were in use, leaving a trail of many unterminated uploads.
This feature flag is enabled by default since this change only affects AWS S3 users. This should reduce the number of incomplete multipart uploads created by GitLab.
We previously tried to omit the multipart URLs in !49482 (merged), but had to revert this in !52561 (merged) since Workhorse would only use this client if the region were specified. However, with !59932 (merged) a default region will always be sent to Workhorse.
Relates to #342136 (closed)
Test plan
With consolidated storage settings
| Transfer type | IAM profile enabled? | Pass? |
|---|---|---|
| LFS | Y | |
| CI artifacts | Y | |
| Issue attachments | Y | |
| NPM Packages | Y |
|
| LFS | N | |
| CI artifacts | N | |
| Issue attachments | N | |
| NPM Packages | N |
|
With storage-specific settings
| Transfer type | IAM profile enabled? | Pass? |
|---|---|---|
| LFS | Y | |
| CI artifacts | Y | |
| Issue attachments | Y | |
| NPM Packages | Y |
|
| LFS | N |
s3_multipart used in logs |
| CI artifacts | N |
s3_multipart used in logs |
| Issue attachments | N |
s3_multipart used in logs |
| NPM Packages | N |
|