FTP client package for Go
Go to file
2020-07-08 08:23:44 +02:00
.github stale bot: ignore accepted issues 2020-03-09 18:13:36 +01:00
.travis.yml Fix get of golint 2019-10-19 14:58:47 +02:00
client_test.go Add support for append (APPE) command 2020-03-10 11:43:17 +01:00
conn_test.go Add support for append (APPE) command 2020-03-10 11:43:17 +01:00
debug.go Add DialWithDebugOutput to log commands. 2019-04-17 13:16:26 +02:00
ftp.go fix_walk 2020-04-26 10:28:15 +03:00
go.mod Update dependencies 2020-07-08 08:20:38 +02:00
go.sum Update dependencies 2020-07-08 08:20:38 +02:00
LICENSE Update copyright years. 2013-02-17 10:34:01 +01:00
parse_test.go Correctly parse symlink (#152) 2019-06-24 10:48:59 +02:00
parse.go Correctly parse symlink (#152) 2019-06-24 10:48:59 +02:00
README.md Add close on read example 2020-03-31 16:49:19 +02:00
scanner_test.go Do not export the scanner type 2017-03-04 13:01:41 +01:00
scanner.go Do not export the scanner type 2017-03-04 13:01:41 +01:00
status_test.go Add status string for unknown status codes 2020-07-08 08:23:44 +02:00
status.go Add status string for unknown status codes 2020-07-08 08:23:44 +02:00
walker_test.go fix_walk 2020-04-26 10:28:15 +03:00
walker.go fix_walk 2020-04-26 10:28:15 +03:00

goftp

Build Status Coverage Status Go ReportCard godoc.org

A FTP client package for Go

Install

go get -u github.com/jlaffaye/ftp

Example

c, err := ftp.Dial("ftp.example.org:21", ftp.DialWithTimeout(5*time.Second))
if err != nil {
    log.Fatal(err)
}

err = c.Login("anonymous", "anonymous")
if err != nil {
    log.Fatal(err)
}

// Do something with the FTP conn

if err := c.Quit(); err != nil {
    log.Fatal(err)
}

Store a file example

data := bytes.NewBufferString("Hello World")
err = c.Stor("test-file.txt", data)
if err != nil {
	panic(err)
}

Read a file example

r, err := c.Retr("test-file.txt")
if err != nil {
	panic(err)
}
defer r.Close()

buf, err := ioutil.ReadAll(r)
println(string(buf))