Загрузка файла ruby ​​с использованием MultiPart - Errno::EPIPE: Сломанный канал

У меня есть следующий код, который был скопирован из другого проекта и работает там... однако он не работает в новом проекте ruby ​​для автоматизации тестирования. Я проверил, драгоценные камни установлены, они, кажется, доступны.

У меня есть другие методы в новом проекте, которые используют rest-client для получения ответов... это просто метод загрузки файла, который мне не удался с Errno::EPIPE: Broken pipe.

Я искал решение, но безрезультатно! Я подозреваю, что это проблема с гемом или какой-то другой зависимостью. Как недавний участник перехода с Windows на Mac, я легко теряюсь, поэтому, пожалуйста, будьте терпеливы с моим отсутствием опыта.

require 'json'
require 'openssl'
require 'rest-client'
require 'net/http/post/multipart'
require 'net/https'
require 'net/http'

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

    def upload_new_file(fileName, folderName, fileTypeId)

  @file_id = nil
  create_url = see_url + '/configuration-srv/v2/filetypes/' + fileTypeId.to_s + '/files'
  url = URI.parse(create_url)
  puts 'upload_file: URL to upload file to [' + url.to_s + ']'
  content_type = 'text/csv'
  begin
    @response = File.open(folderName + fileName.to_s, 'rb') do |csv|
      req = Net::HTTP::Post::Multipart.new url.path, {'file' => UploadIO.new(csv, content_type, fileName.to_s)}
      Net::HTTP.start(url.host, url.port, :use_ssl => url.scheme == 'https') do |http|
        req.add_field('Authorization', @session_token)
        http.request(req)
      end
    end
    file = JSON.parse(@response.body)
    puts 'Created File: ' + file.to_s
    @file_id = file['id'].to_s
  rescue RestClient::ExceptionWithResponse => e
    puts 'This is the returned error string; [ ' + e.response.to_s + ']'
  end
end

0 ответов

Другие вопросы по тегам