Rubyのnet/ftpライブラリの使い方【初心者向け】

初心者向けにRubyのnet/ftpライブラリの使い方について解説しています。このライブラリはFTPプロトコルを扱う際に利用されるものです。導入の手順と実際の使用例を見ていきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

Rubyのnet/ftpライブラリの使い方について解説します。

 
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

net/ftpライブラリの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

net/ftpライブラリとは

net/ftpはRubyでFTPプロトコルを扱うためのライブラリです。

FTPサイトにアクセスし、フォルダを閲覧したり、ファイルをダウンロードしたりできます。

 

net/ftpライブラリの使い方

はじめにnet/ftpパッケージを読み込みます。

その後、Net::FTP.newコンストラクタで、インスタンスを作成し、各種処理を行います。

詳細は公式の文書を参照してください。

require 'net/ftp'
ftp = Net::FTP.new('ftp.example.org')
# 以降、ftpオブジェクトを用いて各種操作をする

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

サンプルコード

require 'net/ftp'

FTP_HOST = 'ftp.dnsbalance.ring.gr.jp'
DIRECTORY = '/pub/lang/ruby/2.6/'
FILE = 'ruby-2.6.0-preview1.zip'

ftp = Net::FTP.new(FTP_HOST)
ftp.login
ftp.passive = true
ftp.chdir(DIRECTORY)
puts ftp.list('ruby*')
ftp.getbinaryfile(FILE)
ftp.close

 

実行結果

-r--r--r--    1 1005       1005         14104578 Feb 25  2018 ruby-2.6.0-preview1.tar.bz2
-r--r--r--    1 1005       1005         16082501 Feb 25  2018 ruby-2.6.0-preview1.tar.gz
-r--r--r--    1 1005       1005         11423984 Feb 25  2018 ruby-2.6.0-preview1.tar.xz
-r--r--r--    1 1005       1005         19807007 Feb 25  2018 ruby-2.6.0-preview1.zip
-r--r--r--    1 1005       1005         14209461 Jun  1 20:33 ruby-2.6.0-preview2.tar.bz2
-r--r--r--    1 1005       1005         16170732 Jun  1 20:33 ruby-2.6.0-preview2.tar.gz
-r--r--r--    1 1005       1005         11525372 Jun  1 20:33 ruby-2.6.0-preview2.tar.xz
-r--r--r--    1 1005       1005         19850776 Jun  1 20:33 ruby-2.6.0-preview2.zip

 

解説

1行目でnet/ftpパッケージを読み込んでいます。

3-5行目で定数を宣言しました。

7行目でFTPインスタンスを作成しています。

8行目でFTPサイトにログイン、9行目でパッシブモードを指定しました。

10行目でフォルダを移動しました。

11行目で名前が”ruby”ではじまるファイル一覧を取得し表示ています。

12行目でファイルを指定し、ダウンロードし、13行目でFTP接続を閉じました。

 

監修してくれたメンター

橋本紘希

システムインテグレータ企業勤務のシステムエンジニア。

開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間でRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。