Multiple zip files are filling the tmp folder #1017
This commit is contained in:
parent
d854af8090
commit
d6cdf8c25a
@ -366,16 +366,7 @@ class DmsfController < ApplicationController
|
||||
raise DmsfAccessError unless User.current.allowed_to?(:email_documents, @project)
|
||||
zip = Zip.new
|
||||
zip_entries(zip, selected_folders, selected_files)
|
||||
|
||||
zipped_content = DmsfHelper.temp_dir.join(DmsfHelper.temp_filename('dmsf_email_sent_documents.zip'))
|
||||
|
||||
File.open(zipped_content, 'wb') do |f|
|
||||
File.open(zip.finish, 'rb') do |zip_file|
|
||||
while (buffer = zip_file.read(8192))
|
||||
f.write(buffer)
|
||||
end
|
||||
end
|
||||
end
|
||||
zipped_content = zip.finish
|
||||
|
||||
max_filesize = Setting.plugin_redmine_dmsf['dmsf_max_email_filesize'].to_f
|
||||
if max_filesize > 0 && File.size(zipped_content) > max_filesize * 1048576
|
||||
|
||||
@ -29,15 +29,15 @@ module RedmineDmsf
|
||||
attr_reader :files
|
||||
|
||||
def initialize
|
||||
@zip_path = DmsfHelper.temp_dir.join(DmsfHelper.temp_filename('dmsf_zip.zip'))
|
||||
@zip_file = ::Zip::OutputStream.new(@zip_path)
|
||||
@temp_file = Tempfile.new(%w(dmsf_zip_ .zip), DmsfHelper.temp_dir)
|
||||
@zip_file = ::Zip::OutputStream.open(@temp_file)
|
||||
@files = []
|
||||
@folders = []
|
||||
end
|
||||
|
||||
def finish
|
||||
@zip_file.close
|
||||
@zip_path
|
||||
@temp_file.path
|
||||
end
|
||||
|
||||
def close
|
||||
|
||||
@ -286,19 +286,16 @@ class DmsfControllerTest < RedmineDmsf::Test::TestCase
|
||||
|
||||
def test_entries_email
|
||||
@role.add_permission! :view_dmsf_files
|
||||
zip_file_path = DmsfHelper.temp_dir.join(DmsfHelper.temp_filename('dmsf_email_sent_documents.zip'))
|
||||
FileUtils.touch(zip_file_path)
|
||||
assert File.exist?(zip_file_path)
|
||||
get :entries_email, :params => {:id => @project, :email =>
|
||||
zip_file = Tempfile.new('test', DmsfHelper::temp_dir)
|
||||
get :entries_email, params: { id: @project, email:
|
||||
{
|
||||
:to => 'to@test.com', :from => 'from@test.com', :subject => 'subject', :body => 'body', :expired_at => '2015-01-01',
|
||||
:folders => [], :files => [@file1.id], :zipped_content => zip_file_path
|
||||
to: 'to@test.com', from: 'from@test.com', subject: 'subject', body: 'body', expired_at: '2015-01-01',
|
||||
folders: [], files: [@file1.id], zipped_content: zip_file.path
|
||||
}
|
||||
}
|
||||
assert_redirected_to dmsf_folder_path(id: @project)
|
||||
assert !File.exist?(zip_file_path)
|
||||
ensure
|
||||
FileUtils.rm_rf(zip_file_path)
|
||||
zip_file.unlink
|
||||
end
|
||||
|
||||
def test_add_email_forbidden
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user