2013-07-08 20:34:49 +02:00
|
|
|
# goftp #
|
|
|
|
|
2021-10-29 04:39:57 +02:00
|
|
|
[![Units tests](https://github.com/jlaffaye/ftp/actions/workflows/unit_tests.yaml/badge.svg)](https://github.com/jlaffaye/ftp/actions/workflows/unit_tests.yaml)
|
2015-08-19 11:06:47 +02:00
|
|
|
[![Coverage Status](https://coveralls.io/repos/jlaffaye/ftp/badge.svg?branch=master&service=github)](https://coveralls.io/github/jlaffaye/ftp?branch=master)
|
2022-09-08 00:02:26 +02:00
|
|
|
[![golangci-lint](https://github.com/jlaffaye/ftp/actions/workflows/golangci-lint.yaml/badge.svg)](https://github.com/jlaffaye/ftp/actions/workflows/golangci-lint.yaml)
|
|
|
|
[![CodeQL](https://github.com/jlaffaye/ftp/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/jlaffaye/ftp/actions/workflows/codeql-analysis.yml)
|
2021-10-29 04:39:57 +02:00
|
|
|
[![Go ReportCard](https://goreportcard.com/badge/jlaffaye/ftp)](http://goreportcard.com/report/jlaffaye/ftp)
|
2021-03-05 16:52:22 +01:00
|
|
|
[![Go Reference](https://pkg.go.dev/badge/github.com/jlaffaye/ftp.svg)](https://pkg.go.dev/github.com/jlaffaye/ftp)
|
2015-08-18 19:34:22 +02:00
|
|
|
|
2013-07-08 20:34:49 +02:00
|
|
|
A FTP client package for Go
|
|
|
|
|
2016-02-10 19:38:39 +01:00
|
|
|
## Install ##
|
|
|
|
|
|
|
|
```
|
|
|
|
go get -u github.com/jlaffaye/ftp
|
|
|
|
```
|
|
|
|
|
2020-07-15 07:50:26 +02:00
|
|
|
## Documentation ##
|
|
|
|
|
2021-03-05 16:52:22 +01:00
|
|
|
https://pkg.go.dev/github.com/jlaffaye/ftp
|
2020-07-15 07:50:26 +02:00
|
|
|
|
2019-04-10 20:28:22 +02:00
|
|
|
## Example ##
|
2013-07-08 20:34:49 +02:00
|
|
|
|
2019-04-10 20:28:22 +02:00
|
|
|
```go
|
2019-04-23 14:03:05 +02:00
|
|
|
c, err := ftp.Dial("ftp.example.org:21", ftp.DialWithTimeout(5*time.Second))
|
2019-04-10 20:28:22 +02:00
|
|
|
if err != nil {
|
2019-04-15 18:34:29 +02:00
|
|
|
log.Fatal(err)
|
2019-04-10 20:28:22 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
err = c.Login("anonymous", "anonymous")
|
|
|
|
if err != nil {
|
2019-04-15 18:34:29 +02:00
|
|
|
log.Fatal(err)
|
2019-04-10 20:28:22 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// Do something with the FTP conn
|
|
|
|
|
2019-04-15 18:34:29 +02:00
|
|
|
if err := c.Quit(); err != nil {
|
|
|
|
log.Fatal(err)
|
2019-04-10 20:28:22 +02:00
|
|
|
}
|
|
|
|
```
|
2019-07-18 21:16:16 +02:00
|
|
|
|
|
|
|
## 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)
|
|
|
|
}
|
2020-03-31 16:49:19 +02:00
|
|
|
defer r.Close()
|
2019-07-18 21:16:16 +02:00
|
|
|
|
|
|
|
buf, err := ioutil.ReadAll(r)
|
|
|
|
println(string(buf))
|
|
|
|
```
|