summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Gemfile5
-rw-r--r--changelogs/unreleased/sh-carrierwave-patch-google-acl.yml5
-rw-r--r--config/initializers/carrierwave_patch.rb13
3 files changed, 21 insertions, 2 deletions
diff --git a/Gemfile b/Gemfile
index 70c08c5f1eb..e34909afc14 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