Nuget package registry is not redirecting package downloads to object storage

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

We've implemented the Consolidated object storage on our self hosted Gitlab.com, and we're using the Nuget package registry. What I'm seeing though, is during restores, that a lot of outbound data traffic occurs from the gitlab server. When investigating, I find that the nuget package feed does not redirect package downloads to our GCS object storage, but serves the packages through Gitlab.

I've disabled proxy_download, which as I read it, should mean that Gitlab will not proxy downloads of files, such as packages. But maybe this doesn't account for nuget packages.

If I enable diagnostic logging in my nuget client, I can see a download f.ex. from:

https://DOMAIN/api/v4/projects/221/packages/nuget/download/MYPACKAGENAME/1.15.0-alpha0001/MYPACKAGENAME.1.15.0-alpha0001.nupkg

Which gets a 200 OK response, and not a 3xx redirect as expected.

The load on our server is higher due to this.

Gitlab.rb snippet:

        # Consolidated storage
        gitlab_rails['object_store']['enabled'] = true
        gitlab_rails['object_store']['proxy_download'] = false
        gitlab_rails['object_store']['connection'] = {
          'provider' => 'Google',
          'google_project' => 'scm-some-project',
          'google_json_key_location' => '/etc/gitlab/gitlab-account-json-key.json'
        }

        gitlab_rails['object_store']['objects']['artifacts']['bucket'] = 'scm-some-project-artifacts'
        gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = 'scm-some-project-external-diffs'
        gitlab_rails['object_store']['objects']['lfs']['bucket'] = 'scm-some-project-lfs'
        gitlab_rails['object_store']['objects']['uploads']['bucket'] = 'scm-some-project-uploads'
        gitlab_rails['object_store']['objects']['packages']['bucket'] = 'scm-some-project-packages'
        gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = 'scm-some-project-dependency_proxy'
        gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = 'scm-some-project-terraform_state'
        gitlab_rails['object_store']['objects']['pages']['bucket'] = 'scm-some-project-pages'
Edited by 🤖 GitLab Bot 🤖