Golang FTP 庫:goftp
goftp
一個支持Walk的Golang FTP庫
特性
- AUTH TLS 支持
- Walk </ul>
示例 package main
import (
"github.com/dutchcoders/goftp"
"crypto/tls"
)
func main() {
var err error
var ftp *goftp.FTP
if ftp, err = goftp.Connect("ftp.server.com"); err != nil {
panic(err)
}
defer ftp.Close()
config := tls.Config{
InsecureSkipVerify: true,
ClientAuth: tls.RequestClientCert,
}
if err = ftp.AuthTLS(config); err != nil {
panic(err)
}
if err = ftp.Login("username", "password"); err != nil {
panic(err)
}
if err = ftp.Cwd("/"); err != nil {
panic(err)
}
var curpath string
if curpath, err = ftp.Pwd("/"); err != nil {
panic(err)
}
fmt.Printf("Current path: %s", curpath)
var files []string
if files, err = ftp.List(""); err != nil {
panic(err)
}
fmt.Println(files)
if file, err := os.Open("/tmp/test.txt"); err!=nil {
panic(err)
}
if err := ftp.Stor("/test.txt", file); err!=nil {
panic(err)
}
err = ftp.Walk("/", func(path string, info os.FileMode, err error) error {
w := &bytes.Buffer{}
_, err = ftp.Retr(path, func(r io.Reader) error {
var hasher = sha256.New()
if _, err = io.Copy(hasher, r); err != nil {
return err
}
hash := fmt.Sprintf("%s %x", path, sha256.Sum256(nil))
fmt.Println(hash)
return err
})
return nil
})
}</pre></h2>
項目主頁:http://www.baiduhome.net/lib/view/home/1420027646984
import ( "github.com/dutchcoders/goftp" "crypto/tls" )
func main() { var err error var ftp *goftp.FTP
if ftp, err = goftp.Connect("ftp.server.com"); err != nil {
panic(err)
}
defer ftp.Close()
config := tls.Config{
InsecureSkipVerify: true,
ClientAuth: tls.RequestClientCert,
}
if err = ftp.AuthTLS(config); err != nil {
panic(err)
}
if err = ftp.Login("username", "password"); err != nil {
panic(err)
}
if err = ftp.Cwd("/"); err != nil {
panic(err)
}
var curpath string
if curpath, err = ftp.Pwd("/"); err != nil {
panic(err)
}
fmt.Printf("Current path: %s", curpath)
var files []string
if files, err = ftp.List(""); err != nil {
panic(err)
}
fmt.Println(files)
if file, err := os.Open("/tmp/test.txt"); err!=nil {
panic(err)
}
if err := ftp.Stor("/test.txt", file); err!=nil {
panic(err)
}
err = ftp.Walk("/", func(path string, info os.FileMode, err error) error {
w := &bytes.Buffer{}
_, err = ftp.Retr(path, func(r io.Reader) error {
var hasher = sha256.New()
if _, err = io.Copy(hasher, r); err != nil {
return err
}
hash := fmt.Sprintf("%s %x", path, sha256.Sum256(nil))
fmt.Println(hash)
return err
})
return nil
})
}</pre></h2>
項目主頁:http://www.baiduhome.net/lib/view/home/1420027646984
本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!