diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-20 11:43:02 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-10-20 11:43:02 +0300 |
commit | d9ab72d6080f594d0b3cae15f14b3ef2c6c638cb (patch) | |
tree | 2341ef426af70ad1e289c38036737e04b0aa5007 /app/models/upload.rb | |
parent | d6e514dd13db8947884cd58fe2a9c2a063400a9b (diff) |
Add latest changes from gitlab-org/gitlab@14-4-stable-eev14.4.0-rc42
Diffstat (limited to 'app/models/upload.rb')
-rw-r--r-- | app/models/upload.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/app/models/upload.rb b/app/models/upload.rb index 0a4acdfc7e3..c1a3df82457 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -18,6 +18,8 @@ class Upload < ApplicationRecord before_save :calculate_checksum!, if: :foreground_checksummable? after_commit :schedule_checksum, if: :needs_checksum? + after_commit :update_project_statistics, on: [:create, :destroy], if: :project? + # as the FileUploader is not mounted, the default CarrierWave ActiveRecord # hooks are not executed and the file will not be deleted after_destroy :delete_file!, if: -> { uploader_class <= FileUploader } @@ -67,7 +69,7 @@ class Upload < ApplicationRecord self.checksum = nil return unless needs_checksum? - self.checksum = self.class.hexdigest(absolute_path) + self.checksum = self.class.sha256_hexdigest(absolute_path) end # Initialize the associated Uploader class with current model @@ -161,6 +163,14 @@ class Upload < ApplicationRecord def mount_point super&.to_sym end + + def project? + model_type == "Project" + end + + def update_project_statistics + ProjectCacheWorker.perform_async(model_id, [], [:uploads_size]) + end end Upload.prepend_mod_with('Upload') |