SftpEx

An Elixir wrapper around the Erlang SFTP application. This allows for the use of Elixir Streams to transfer files via SFTP.

Example usage:

An example of writing a file to a server is the following.

stream = File.stream!("filename.txt")
    |> Stream.into(SftpEx.stream!(connection,"/home/path/filename.txt"))
    |> Stream.run

This follows the same pattern as Elixir IO streams so a file can be transferred from one server to another via SFTP as follows.

stream = SftpEx.stream!(connection,"/home/path/filename.txt")
|> Stream.into(SftpEx.stream!(connection2,"/home/path/filename.txt"))
|> Stream.run

SftpEx.stream!(connection,”test2.csv”) |> Stream.into(File.stream!(“filename.txt”)) |> Stream.run

Installation

If available in Hex, the package can be installed as:

  1. Add sftp_ex to your list of dependencies in mix.exs:

    def deps do
      [{:sftp_ex, "~> 0.2.0"}]
    end
  2. Ensure sftp_ex is started before your application:

    def application do
      [applications: [:sftp_ex]]
    end