Accelerate uploads via API with Workhorse [RUN ALL RSPEC] [RUN AS-IF-FOSS]
Previously uploads via the API would go straight to Rack, which would then try to buffer and store temporary files on local disk. This enables Workhorse to accelerate API uploads and limits to the configured maximum attachment size (10 MB by default).
Workhorse needs the API endpoint /api/v4/projects/:id/uploads/authorize
endpoint to support acceleration.
This adds the enforce_max_attachment_size_upload_api
feature flag to enable enforcement of max attachment size in the upload API. If the
feature is not enabled, we limit to 1 GB by default. GITLAB_UPLOAD_API_ALLOWLIST
can be set in the environment to allow certain project IDs to bypass enforcement.
Relates to https://gitlab.com/gitlab-org/gitlab/-/issues/324813
Edited by Stan Hu