aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/workers/workbench_import_worker.rb22
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
# ===========