diff --git a/app/jobs/regular/export_csv_file.rb b/app/jobs/regular/export_csv_file.rb index b0ae17c36..308d5d377 100644 --- a/app/jobs/regular/export_csv_file.rb +++ b/app/jobs/regular/export_csv_file.rb @@ -288,12 +288,14 @@ module Jobs csv << value end end + # compress CSV file + `gzip --best #{File.expand_path("#{UserExport.base_directory}/#{@file_name}", __FILE__)}` end def notify_user if @current_user - if @file_name != "" && File.exists?("#{UserExport.base_directory}/#{@file_name}") - SystemMessage.create_from_system_user(@current_user, :csv_export_succeeded, download_link: "#{Discourse.base_url}/export_csv/#{@file_name}", file_name: @file_name) + if @file_name != "" && File.exists?("#{UserExport.base_directory}/#{@file_name}.gz") + SystemMessage.create_from_system_user(@current_user, :csv_export_succeeded, download_link: "#{Discourse.base_url}/export_csv/#{@file_name}.gz", file_name: "#{@file_name}.gz") else SystemMessage.create_from_system_user(@current_user, :csv_export_failed) end diff --git a/spec/controllers/export_csv_controller_spec.rb b/spec/controllers/export_csv_controller_spec.rb index 49a9b36b9..16d3f5996 100644 --- a/spec/controllers/export_csv_controller_spec.rb +++ b/spec/controllers/export_csv_controller_spec.rb @@ -1,7 +1,7 @@ require "spec_helper" describe ExportCsvController do - let(:export_filename) { "user-archive-999.csv" } + let(:export_filename) { "user-archive-999.csv.gz" } context "while logged in as normal user" do @@ -30,7 +30,7 @@ describe ExportCsvController do describe ".download" do it "uses send_file to transmit the export file" do file = UserExport.create(export_type: "user", user_id: @user.id) - file_name = "user-archive-#{file.id}.csv" + file_name = "user-archive-#{file.id}.csv.gz" controller.stubs(:render) export = UserExport.new() UserExport.expects(:get_download_path).with(file_name).returns(export) @@ -74,7 +74,7 @@ describe ExportCsvController do describe ".download" do it "uses send_file to transmit the export file" do file = UserExport.create(export_type: "admin", user_id: @admin.id) - file_name = "screened-email-#{file.id}.csv" + file_name = "screened-email-#{file.id}.csv.gz" controller.stubs(:render) export = UserExport.new() UserExport.expects(:get_download_path).with(file_name).returns(export)