uploadcare / uploadcare-ruby

Ruby API client that handles uploads and further operations with files by wrapping Uploadcare Upload and REST APIs.
https://uploadcare.com
MIT License
39 stars 28 forks source link

TypeError after upgrading from Rails 4.x to 5.2 #58

Closed Meekohi closed 6 years ago

Meekohi commented 6 years ago

Upgraded from Rails 4.x to 5.2 and seeing the following error:

2.4.1 :003 > UploadcareApi.upload_from_url "https://image-ticketfly.imgix.net/00/02/90/44/99-og.jpg"
2.4.1 :009 > file.uuid
 => "27e81883-6444-45a5-b8f2-f0070a93bade" 
2.4.1 :010 > file.cdn_url
 => "https://ucarecdn.com/27e81883-6444-45a5-b8f2-f0070a93bade/" 
2.4.1 :011 > file.store
TypeError: no implicit conversion of nil into String
Meekohi commented 6 years ago

More info

2.4.1 :006 > begin
2.4.1 :007 >       file.store
2.4.1 :008?>   rescue => e
2.4.1 :009?>     puts e.backtrace
2.4.1 :010?>   end
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/uploadcare-ruby-1.1.0/lib/uploadcare/rest/auth/secure.rb:27:in `hexdigest'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/uploadcare-ruby-1.1.0/lib/uploadcare/rest/auth/secure.rb:27:in `signature'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/uploadcare-ruby-1.1.0/lib/uploadcare/rest/auth/secure.rb:19:in `headers'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/uploadcare-ruby-1.1.0/lib/uploadcare/rest/auth/secure.rb:10:in `apply'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/uploadcare-ruby-1.1.0/lib/uploadcare/rest/middlewares/auth_middleware.rb:15:in `call'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/faraday-0.12.2/lib/faraday/request/url_encoded.rb:15:in `call'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/faraday-0.12.2/lib/faraday/rack_builder.rb:141:in `build_response'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/faraday-0.12.2/lib/faraday/connection.rb:386:in `run_request'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/faraday-0.12.2/lib/faraday/connection.rb:186:in `put'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/uploadcare-ruby-1.1.0/lib/uploadcare/api/raw_api.rb:15:in `request'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/uploadcare-ruby-1.1.0/lib/uploadcare/api/raw_api.rb:35:in `put'
/Users/meekohi/.rvm/gems/ruby-2.4.1@scenethink/gems/uploadcare-ruby-1.1.0/lib/uploadcare/resources/file.rb:66:in `store'
Meekohi commented 6 years ago

Blrg dumb error on my part, private_key wasn't set. Would be nice to sanity check that when calling Uploadcare::Api.new (warn if public/private keys aren't set).

dmitry-mukhin commented 6 years ago

glad you've figured it out! those things happen to everybody :)

Meekohi commented 5 years ago

Laughable but... this happened to me again today and caused ~1hr of confusion. Would be nice to get a warning if the private key isn't set ;)