Golang FTP 庫:goftp

碼頭工人 9年前發布 | 70K 次閱讀 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


 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!