diff options
| -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    # =========== | 
