require 'net/ftp'
def self.upload(file, options)
ftp = Net::FTP.new
ftp.connect(options[:ftp_server])
ftp.login(options[:user], options[:passwd])
ftp.binary = true
ftp.chdir(options[:dir]) if options[:dir]
ftp.put( file )
ftp.quit
end
と書いてあげればファイルのFTPアップロードができる。
ちなみに引数は以下の通り。
files #転送したいファイルのファイル名を要素に持つ配列
options[:ftp_server] # サーバーのホスト名
options[:user] # ユーザ名
options[:passwd] # パスワード
options[:dir] # 転送先ディレクトリ
ruby リファレンスによると、
Net::FTP#put(localfile, remotefile = File.basename(localfile), blocksize = DEFAULT_BLOCKSIZE)
Net::FTP#put(localfile, remotefile = File.basename(localfile), blocksize = DEFAULT_BLOCKSIZE) { |data| .... }
binaryの値に従ってローカルファイル localfile を送信し、 remotefile をファイル名とするリモートファイルに保存します。 remotefileが省略されるとlocalfileのベースネームが仮定されます。 block_sizeが省略されるとDEFAULT_BLOCLSIZEが仮定されます。この値は binary が真であるときのみ有効です。
---
らしいので、転送先で指定したファイル名で転送先に保存したい場合はputの引数に保存するファイル名を指定してあげるとよい。
0 件のコメント:
コメントを投稿