使用基本身份验证从url下载文件的ruby代码

时间:2017-05-30 07:25:13

标签: ruby-on-rails ruby

我是ruby的新手,我正在学习它。

我希望从一个网址(例如:https://myurl.com/123/1.zip)下载一个文件,并进行基本身份验证。我尝试从Windows命令提示符执行以下ruby脚本..

request.headers.host

当我执行脚本时,我看到没有错误,但文件没有下载。请你帮我更正我的代码

2 个答案:

答案 0 :(得分:3)

你可以试试这个:

require 'open-uri'

File.open('/path/your.file', "wb") do |file|
    file.write open('https://myurl.com/123/1.zip', :http_basic_authentication => ['john@test.com', 'John123']).read
end

答案 1 :(得分:0)

你快到了。只需使用ruby的send_data方法

require 'net/http'

uri = URI('https://myurl.com/123/1.zip')

Net::HTTP.start(uri.host, uri.port,
  :use_ssl => uri.scheme == 'https', 
  :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http|

  request = Net::HTTP::Get.new uri.request_uri
  request.basic_auth 'john@test.com', 'John123'

  http.request(request) do |response|
    send_data(response.body, filename: 'set_filename.pdf')
  end
end