diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/workers/workbench_import_worker.rb | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/app/workers/workbench_import_worker.rb b/app/workers/workbench_import_worker.rb index 6420be835..13b0efae0 100644 --- a/app/workers/workbench_import_worker.rb +++ b/app/workers/workbench_import_worker.rb @@ -53,17 +53,18 @@ class WorkbenchImportWorker end def upload_entry_group_stream eg_name, eg_stream - FileUtils.mkdir_p(Rails.root.join('tmp', 'imports')) - - File.open(Rails.root.join('tmp', 'imports', "WorkbenchImport_#{eg_name}_#{$$}.zip"), 'wb') do |file| + eg_file_path = Tempfile.open( + ["WorkbenchImport_#{eg_name}_", '.zip'], + temp_directory + ) do |f| eg_stream.rewind - file.write eg_stream.read + f.write eg_stream.read + + f.path end - upload_entry_group_tmpfile eg_name, File.new(Rails.root.join('tmp', 'imports', "WorkbenchImport_#{eg_name}_#{$$}.zip")) - end - - def upload_entry_group_tmpfile eg_name, eg_file + eg_file = File.open(eg_file_path) + result = execute_post eg_name, eg_file if result && result.status < 400 @entries += 1 @@ -117,6 +118,11 @@ class WorkbenchImportWorker file: HTTPService.upload(file, 'application/zip', "#{name}.zip") } } end + def temp_directory + Rails.application.config.try(:import_temporary_directory) || + Rails.root.join('tmp', 'imports') + end + # Lazy Values # =========== |
