アカハヤの技術ブログ

クズと天才は紙一重 twitter:@akahaya719

FTPサーバーからファイルを取得する(Ruby)

まず、FTPサーバーを構築します。

今回は、ローカル(Mac)とAzureに構築する二つのパターンを紹介します。

 

・ローカルでFTPサーバーを立ち上げる

起動する。

sudo launchctl load -w /System/Library/LaunchDaemons/ftp.plist

停止する。

sudo launchctl unload -w /System/Library/LaunchDaemons/ftp.plist

これだけです。

 

・AzureでFTPサーバーを立ち上げる

Azureにログイン後、新規->Web+モバイル->WebAppと選択し、

アプリ名やサブスクリプションなどを入力し作成。

サーバー構築後、設定->デプロイ資格情報でユーザ名とパスワードを設定します。

設定->プロパティでFTPホスト名が分かるのでFTPクライアントからAzureサーバーへ接続を行うことができます。

 

FTPサーバーからファイルを取得する

Net::FTPというRubyのクラスを使用します

require 'net/ftp'
host = URI(FTPホスト名).host
port = URI(FTPホスト名).port
remotefile = '習得するFTP側のファイルのフルパス'
local_file = '習得したデータの保存ファイルのフルパス'

#localの場合
Net::FTP.open('localhost') do |ftp|
ftp.login(ローカルのユーザ名, ローカルのパスワード)
ftp.passive = true
ftp.get(remotefile, local_file)
end

#Azureの場合
ftp = Net::FTP.new
ftp.connect(host, port)
ftp.login(Azureに設定したユーザ名, Azureに設定したパスワード)
ftp.passive = true
ftp.get(remotefile, local_file)