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 Workhorse acceleration not present: #13078
LFS N
CI artifacts N
Issue attachments N
NPM Packages N Workhorse acceleration not present: #13078

With storage-specific settings

Transfer type IAM profile enabled? Pass?
LFS Y
CI artifacts Y
Issue attachments Y
NPM Packages Y Workhorse acceleration not present: #13078
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 Workhorse acceleration not present: #13078
Edited by Stan Hu

Merge request reports

Loading