-
- Downloads
Add Azure Blob Storage support
This uses our custom Azure gem (https://gitlab.com/gitlab-org/gitlab-fog-azure-rm) to integrate direct upload access with GitLab. Because the Azure PutBlob API does not work with chunked encoding, uploads cannot be streamed directly via a pre-signed URL without saving to disk first. To make this work without that, we need to add an Azure client directly in Workhorse that uses the PutBlock and PutBlock API. The Workhorse client is implemented in gitlab-workhorse!555. We use the Go Cloud Development Kit to generate a URL (e.g. `azblob://container`) that can be extended for other object storage providers. Part of #25877
Showing
- Gemfile 1 addition, 0 deletionsGemfile
- Gemfile.lock 29 additions, 0 deletionsGemfile.lock
- changelogs/unreleased/sh-add-azure-blob-support.yml 5 additions, 0 deletionschangelogs/unreleased/sh-add-azure-blob-support.yml
- config/initializers/carrierwave_patch.rb 31 additions, 0 deletionsconfig/initializers/carrierwave_patch.rb
- config/initializers/direct_upload_support.rb 14 additions, 5 deletionsconfig/initializers/direct_upload_support.rb
- lib/object_storage/config.rb 4 additions, 0 deletionslib/object_storage/config.rb
- lib/object_storage/direct_upload.rb 25 additions, 2 deletionslib/object_storage/direct_upload.rb
- spec/initializers/carrierwave_patch_spec.rb 32 additions, 0 deletionsspec/initializers/carrierwave_patch_spec.rb
- spec/initializers/direct_upload_support_spec.rb 10 additions, 2 deletionsspec/initializers/direct_upload_support_spec.rb
- spec/lib/object_storage/direct_upload_spec.rb 52 additions, 0 deletionsspec/lib/object_storage/direct_upload_spec.rb
... | ... | @@ -119,6 +119,7 @@ gem 'fog-local', '~> 0.6' |
gem 'fog-openstack', '~> 1.0' | ||
gem 'fog-rackspace', '~> 0.1.1' | ||
gem 'fog-aliyun', '~> 0.3' | ||
gem 'gitlab-fog-azure-rm', '~> 0.7' | ||
# for Google storage | ||
gem 'google-api-client', '~> 0.33' | ||
... | ... |
spec/initializers/carrierwave_patch_spec.rb
0 → 100644
Please register or sign in to comment