1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
# goftp #
[](https://github.com/jlaffaye/ftp/actions/workflows/unit_tests.yaml)
[](https://coveralls.io/github/jlaffaye/ftp?branch=master)
[](https://github.com/jlaffaye/ftp/actions/workflows/golangci-lint.yaml)
[](https://github.com/jlaffaye/ftp/actions/workflows/codeql-analysis.yml)
[](http://goreportcard.com/report/jlaffaye/ftp)
[](https://pkg.go.dev/github.com/jlaffaye/ftp)
A FTP client package for Go
## Install ##
```
go get -u github.com/jlaffaye/ftp
```
## Documentation ##
https://pkg.go.dev/github.com/jlaffaye/ftp
## Example ##
```go
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 ##
```go
data := bytes.NewBufferString("Hello World")
err = c.Stor("test-file.txt", data)
if err != nil {
panic(err)
}
```
## Read a file example ##
```go
r, err := c.Retr("test-file.txt")
if err != nil {
panic(err)
}
defer r.Close()
buf, err := ioutil.ReadAll(r)
println(string(buf))
```
|