net/http abends with local file URI
Give the ruby code in issue.rb is:
begin require 'uri' require 'net/http' p ::File.exist?('/tmp/tomcat-8/v8.0.39/bin/apache-tomcat-8.0.39.tar.gz.md5') uri = URI( 'file:/tmp/tomcat-8/v8.0.39/bin/apache-tomcat-8.0.39.tar.gz.md5' ) req= Net::HTTP.new(uri.host, uri.port) req.get( uri ) rescue => e p e.inspect p e.backtrace end
Then the results is
true "#<TypeError: can't dup NilClass>" ["/opt/chef/embedded/lib/ruby/2.3.0/net/http/generic_request.rb:18:in `dup'", "/opt/chef/embedded/lib/ruby/2.3.0/net/http/generic_request.rb:18:in `initialize'", "/opt/chef/embedded/lib/ruby/2.3.0/net/http/request.rb:15:in `initialize'", "/opt/chef/embedded/lib/ruby/2.3.0/net/http.rb:1156:in `new'", "/opt/chef/embedded/lib/ruby/2.3.0/net/http.rb:1156:in `get'", "/tmp/issue.rb:7:in `<main>'"]
Updated by shyouhei (Shyouhei Urabe) over 2 years ago
- Status changed from Open to Feedback
Sorry, I don't get what you want. Net::HTTP is a HTTP library and file:/// is not a HTTP URL. You are doing something that never works.
Maybe you want a higher level abstraction? If so I think that should be done in a separate library than Net::HTTP.