diff options
author | Kamil Trzciński (OoO till 3th) <ayufan@ayufan.eu> | 2018-07-04 12:34:58 +0300 |
---|---|---|
committer | Kamil Trzciński (OoO till 3th) <ayufan@ayufan.eu> | 2018-07-04 12:34:58 +0300 |
commit | 95f63bca5ac5c23b538e36f0a12fbbe4520cb318 (patch) | |
tree | 143e9402a3b5cbacceff540ab99c1e12713a3de8 /config | |
parent | 03f0f2566b3c536cf512b287e0d4d52d40a065c5 (diff) | |
parent | 957167f3040ac3126ab22e3771b44738ac7601c5 (diff) |
Merge branch 'bump-carrierwave-to-1-2-3' into 'master'
Bump Carrierwave gem to 1.2.3 (which contains the monkey patch for memory consumption)
Closes #46182
See merge request gitlab-org/gitlab-ce!20287
Diffstat (limited to 'config')
-rw-r--r-- | config/initializers/carrierwave_monkey_patch.rb | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/config/initializers/carrierwave_monkey_patch.rb b/config/initializers/carrierwave_monkey_patch.rb deleted file mode 100644 index 7543231cd4f..00000000000 --- a/config/initializers/carrierwave_monkey_patch.rb +++ /dev/null @@ -1,69 +0,0 @@ -# This fixes the problem https://gitlab.com/gitlab-org/gitlab-ce/issues/46182 that carrierwave eagerly loads upoloading files into memory -# There is an PR https://github.com/carrierwaveuploader/carrierwave/pull/2314 which has the identical change. -module CarrierWave - module Storage - class Fog < Abstract - class File - module MonkeyPatch - ## - # Read content of file from service - # - # === Returns - # - # [String] contents of file - def read - file_body = file.body - - return if file_body.nil? - return file_body unless file_body.is_a?(::File) - - # Fog::Storage::XXX::File#body could return the source file which was upoloaded to the remote server. - read_source_file(file_body) if ::File.exist?(file_body.path) - - # If the source file doesn't exist, the remote content is read - @file = nil # rubocop:disable Gitlab/ModuleWithInstanceVariables - file.body - end - - ## - # Write file to service - # - # === Returns - # - # [Boolean] true on success or raises error - def store(new_file) - if new_file.is_a?(self.class) # rubocop:disable Cop/LineBreakAroundConditionalBlock - new_file.copy_to(path) - else - fog_file = new_file.to_file - @content_type ||= new_file.content_type # rubocop:disable Gitlab/ModuleWithInstanceVariables - @file = directory.files.create({ # rubocop:disable Gitlab/ModuleWithInstanceVariables - :body => fog_file ? fog_file : new_file.read, # rubocop:disable Style/HashSyntax - :content_type => @content_type, # rubocop:disable Style/HashSyntax,Gitlab/ModuleWithInstanceVariables - :key => path, # rubocop:disable Style/HashSyntax - :public => @uploader.fog_public # rubocop:disable Style/HashSyntax,Gitlab/ModuleWithInstanceVariables - }.merge(@uploader.fog_attributes)) # rubocop:disable Gitlab/ModuleWithInstanceVariables - fog_file.close if fog_file && !fog_file.closed? - end - true - end - - private - - def read_source_file(file_body) - return unless ::File.exist?(file_body.path) - - begin - file_body = ::File.open(file_body.path) if file_body.closed? # Reopen if it's already closed - file_body.read - ensure - file_body.close - end - end - end - - prepend MonkeyPatch - end - end - end -end |