Skip to content

jlaffaye/ftp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jan 30, 2025
2455144 · Jan 30, 2025
Jan 30, 2025
Feb 17, 2013
Sep 7, 2022
Sep 4, 2022
May 13, 2023
Mar 8, 2022
Oct 3, 2021
Nov 13, 2023
Nov 13, 2023
Jan 30, 2025
Jan 30, 2025
Jan 11, 2024
Jan 11, 2024
Mar 4, 2017
Mar 7, 2021
Jul 8, 2020
Sep 4, 2022
Oct 21, 2020

Repository files navigation

goftp

Units tests Coverage Status golangci-lint CodeQL Go ReportCard Go Reference

A FTP client package for Go

Install

go get -u github.com/jlaffaye/ftp

Documentation

https://pkg.go.dev/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))