diff --git a/Gemfile b/Gemfile index 9ce23e693d3..61a9848a522 100644 --- a/Gemfile +++ b/Gemfile @@ -89,8 +89,9 @@ gem 'kaminari', '~> 1.0' gem 'hamlit', '~> 2.8.8' # Files attachments -# Locked until https://github.com/carrierwaveuploader/carrierwave/pull/2332/files is merged. -# config/initializers/carrierwave_patch.rb can be removed once that change is released. +# Locked until https://github.com/carrierwaveuploader/carrierwave/pull/2332 and +# https://github.com/carrierwaveuploader/carrierwave/pull/2356 are merged. +# config/initializers/carrierwave_patch.rb can be removed once both changes are released. gem 'carrierwave', '= 1.2.3' gem 'mini_magick' diff --git a/changelogs/unreleased/sh-carrierwave-patch-google-acl.yml b/changelogs/unreleased/sh-carrierwave-patch-google-acl.yml new file mode 100644 index 00000000000..206253a100c --- /dev/null +++ b/changelogs/unreleased/sh-carrierwave-patch-google-acl.yml @@ -0,0 +1,5 @@ +--- +title: Fix object storage not working properly with Google S3 compatibility +merge_request: 23858 +author: +type: fixed diff --git a/config/initializers/carrierwave_patch.rb b/config/initializers/carrierwave_patch.rb index 35ffff03abe..c361784491d 100644 --- a/config/initializers/carrierwave_patch.rb +++ b/config/initializers/carrierwave_patch.rb @@ -23,6 +23,19 @@ module CarrierWave end end end + + # Fix for https://github.com/carrierwaveuploader/carrierwave/pull/2356 + def acl_header + if fog_provider == 'AWS' + { 'x-amz-acl' => @uploader.fog_public ? 'public-read' : 'private' } + else + {} + end + end + + def fog_provider + @uploader.fog_credentials[:provider].to_s + end end end end