summaryrefslogtreecommitdiff
path: root/app/uploaders
diff options
context:
space:
mode:
authorMicaël Bergeron <mbergeron@gitlab.com>2018-01-30 09:21:28 -0500
committerMicaël Bergeron <mbergeron@gitlab.com>2018-02-06 08:48:35 -0500
commitd84650917ae3eee95fc0aae31ad49fe824fe71d2 (patch)
tree7ed734af7ca6ae616e3ee159fe7e72238c23ec46 /app/uploaders
parentb9d547b12c3731160c456f3f20366e600ab99484 (diff)
downloadgitlab-ce-d84650917ae3eee95fc0aae31ad49fe824fe71d2.tar.gz
remove file after `Upload#destroy`
it will also automatically prune empty directories for `FileUploader`-based uploaders.
Diffstat (limited to 'app/uploaders')
-rw-r--r--app/uploaders/file_uploader.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/app/uploaders/file_uploader.rb b/app/uploaders/file_uploader.rb
index 2310e67cb2e..bde1161dfa8 100644
--- a/app/uploaders/file_uploader.rb
+++ b/app/uploaders/file_uploader.rb
@@ -15,6 +15,8 @@ class FileUploader < GitlabUploader
storage :file
+ after :remove, :prune_store_dir
+
def self.root
File.join(options.storage_path, 'uploads')
end
@@ -140,6 +142,10 @@ class FileUploader < GitlabUploader
end
end
+ def prune_store_dir
+ storage.delete_dir!(store_dir) # only remove when empty
+ end
+
def markdown_name
(image_or_video? ? File.basename(filename, File.extname(filename)) : filename).gsub("]", "\\]")
end