Setup a Static IP for Ruby FTP

Learn how to route Ruby FTP file transfers through a QuotaGuard Static IP.

Prerequisites

# curb Gem
gem install curb

Instructions

Run example
QUOTAGUARDSTATIC_URL=... ruby ftp.rb

Be sure to set QUOTAGUARDSTATIC_URL to your Connection URL from the QuotaGuard Dashboard.

Test in Docker
docker build -t qg-static-ruby-ftp-example .
docker run -e QUOTAGUARDSTATIC_URL=... qg-static-ruby-ftp-example

Code Samples

ftp.rb
#!/usr/bin/env ruby

require 'curb'
require 'uri'

proxy_uri = URI(ENV['QUOTAGUARDSTATIC_URL'])

c = Curl::Easy.new do |curl|
  curl.proxy_url = proxy_uri.to_s
end

# List files
c.url = "ftp://ftp.gnu.org/"
c.perform
puts c.body_str

# Retrieve README
c.url = "ftp://ftp.gnu.org/README"
c.perform

# Write the README file to a local file
File.open("README", "w") do |file|
  file.write(c.body_str)
end

Docker File
FROM ruby:latest

WORKDIR /app/

RUN gem install curb

COPY ftp.rb ftp.rb

CMD ["ruby", "ftp.rb"]