mirror of
https://github.com/redmine/redmine.git
synced 2026-07-30 11:19:08 +02:00
Merged r20812 from trunk to 4.1-stable (#34479).
git-svn-id: http://svn.redmine.org/redmine/branches/4.1-stable@20813 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -436,16 +436,15 @@ class Attachment < ActiveRecord::Base
|
||||
private
|
||||
|
||||
def reuse_existing_file_if_possible
|
||||
original_diskfile = nil
|
||||
original_diskfile = diskfile
|
||||
original_filename = disk_filename
|
||||
reused = with_lock do
|
||||
if existing = Attachment
|
||||
.where(digest: self.digest, filesize: self.filesize)
|
||||
.where('id <> ? and disk_filename <> ?',
|
||||
self.id, self.disk_filename)
|
||||
.where.not(disk_filename: original_filename)
|
||||
.order(:id)
|
||||
.last
|
||||
existing.with_lock do
|
||||
original_diskfile = self.diskfile
|
||||
existing_diskfile = existing.diskfile
|
||||
if File.readable?(original_diskfile) &&
|
||||
File.readable?(existing_diskfile) &&
|
||||
@@ -456,7 +455,7 @@ class Attachment < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
end
|
||||
if reused
|
||||
if reused && Attachment.where(disk_filename: original_filename).none?
|
||||
File.delete(original_diskfile)
|
||||
end
|
||||
rescue ActiveRecord::StatementInvalid, ActiveRecord::RecordNotFound
|
||||
|
||||
Reference in New Issue
Block a user