I am using google-drive-ruby gem for integrating Google-Drive in my rails project. google-drive-ruby gem has run time dependency on google-api-ruby-client gem.
I am trying to configure proxy in configure_client method of http_client_adapter.rb
def configure_client(client, request)
client.transparent_gzip_decompression = true
if true #request.options.proxy
#proxy = request.options.proxy
proxy = URI('http://proxy.xyz.com:8080')
proxy_user = '*******'
proxy_pass = '*******'
client.proxy = sprintf('%s:%d', proxy.host, proxy.port)
if proxy_user && proxy_pass
client.set_proxy_auth proxy_user, proxy_pass
end
end
end
Error trace is below :
Google::Apis::ServerError: unsupported proxy #
from D:/g_drive_local/BMajor/gems/google-api-ruby-client-0100/google-api-ruby-client-0.10.0/lib/google/apis/core/upload.rb:231:in rescue in send_start_command'
from D:/g_drive_local/BMajor/gems/google-api-ruby-client-0100/google-api-ruby-client-0.10.0/lib/google/apis/core/upload.rb:214:in
send_start_command'
from D:/g_drive_local/BMajor/gems/google-api-ruby-client-0100/google-api-ruby-client-0.10.0/lib/google/apis/core/upload.rb:279:in execute_once'
from D:/g_drive_local/BMajor/gems/google-api-ruby-client-0100/google-api-ruby-client-0.10.0/lib/google/apis/core/http_command.rb:107:in
block (2 levels) in execute'
from D:/Ruby/ruby gems/ruby/lib/ruby/gems/2.0.0/gems/retriable-3.1.2/lib/retriable.rb:61:in block in retriable'
from D:/Ruby/ruby gems/ruby/lib/ruby/gems/2.0.0/gems/retriable-3.1.2/lib/retriable.rb:56:in
times'
from D:/Ruby/ruby gems/ruby/lib/ruby/gems/2.0.0/gems/retriable-3.1.2/lib/retriable.rb:56:in retriable'
from D:/g_drive_local/BMajor/gems/google-api-ruby-client-0100/google-api-ruby-client-0.10.0/lib/google/apis/core/http_command.rb:104:in
block in execute'
from D:/Ruby/ruby gems/ruby/lib/ruby/gems/2.0.0/gems/retriable-3.1.2/lib/retriable.rb:61:in block in retriable'
from D:/Ruby/ruby gems/ruby/lib/ruby/gems/2.0.0/gems/retriable-3.1.2/lib/retriable.rb:56:in
times'
from D:/Ruby/ruby gems/ruby/lib/ruby/gems/2.0.0/gems/retriable-3.1.2/lib/retriable.rb:56:in retriable'
from D:/g_drive_local/BMajor/gems/google-api-ruby-client-0100/google-api-ruby-client-0.10.0/lib/google/apis/core/http_command.rb:96:in
execute'
from D:/g_drive_local/BMajor/gems/google-api-ruby-client-0100/google-api-ruby-client-0.10.0/lib/google/apis/core/base_service.rb:353:in execute_or_queue_command'
from D:/g_drive_local/BMajor/gems/google-api-ruby-client-0100/google-api-ruby-client-0.10.0/generated/google/apis/drive_v3/service.rb:579:in
create_file'
from D:/g_drive_local/BMajor/gems/google-drive-ruby-200/google-drive-ruby-2.0.0/lib/google_drive/session.rb:409:in upload_from_source'
from D:/g_drive_local/BMajor/gems/google-drive-ruby-200/google-drive-ruby-2.0.0/lib/google_drive/session.rb:308:in
upload_from_file'
from (irb):2
from D:/Ruby/ruby gems/ruby/lib/ruby/gems/2.0.0/gems/railties-4.0.4/lib/rails/commands/console.rb:90:in start'
from D:/Ruby/ruby gems/ruby/lib/ruby/gems/2.0.0/gems/railties-4.0.4/lib/rails/commands/console.rb:9:in
start'
from D:/Ruby/ruby gems/ruby/lib/ruby/gems/2.0.0/gems/railties-4.0.4/lib/rails/commands.rb:62:in <top (required)>'
from bin/rails:4:in
require'
from bin/rails:4:in `'
By doing some hit and trial I resolved this issue myself. This is how I configured proxy in http_client_adapter.rb :
def configure_client(client, request)
client.transparent_gzip_decompression = true
if true #request.options.proxy
#proxy = request.options.proxy
proxy = URI('http://proxy.xyz.com:8080')
proxy_user = '*******'
proxy_pass = '*******'
client.proxy = 'http://username:password@hostname:port'
if proxy_user && proxy_pass
client.set_proxy_auth proxy_user, proxy_pass
end
end
end