Method: Net::FTP#putbinaryfile

Defined in:
lib/net/ftp.rb

#putbinaryfile(localfile, remotefile = File.basename(localfile), blocksize = DEFAULT_BLOCKSIZE, &block) ⇒ Object

Transfers localfile to the server in binary mode, storing the result in remotefile. If a block is supplied, calls it, passing in the transmitted data in blocksize chunks.



690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
# File 'lib/net/ftp.rb', line 690

def putbinaryfile(localfile, remotefile = File.basename(localfile),
                  blocksize = DEFAULT_BLOCKSIZE, &block) # :yield: data
  if @resume
    begin
      rest_offset = size(remotefile)
    rescue Net::FTPPermError
      rest_offset = nil
    end
  else
    rest_offset = nil
  end
  f = open(localfile)
  begin
    f.binmode
    if rest_offset
      storbinary("APPE #{remotefile}", f, blocksize, rest_offset, &block)
    else
      storbinary("STOR #{remotefile}", f, blocksize, rest_offset, &block)
    end
  ensure
    f.close
  end
end