Exemplo n.º 1
0
func (f *FTP) SendFile(remoteDir, remoteFile, localFile string) (err error) {
	var (
		file *os.File
		ftp  *goftp.FTP
	)
	if ftp, err = goftp.Connect(f.host); err != nil {
		return
	}
	defer ftp.Close()
	if err = ftp.Login(f.user, f.pass); err != nil {
		return
	}
	if file, err = os.Open(localFile); err != nil {
		return
	}
	defer file.Close()
	if f.testMode {
		return
	}
	if err = ftp.Mkd(remoteDir); err != nil {
		return
	}
	if err = ftp.Cwd(remoteDir); err != nil {
		return
	}
	ftp.Stor(remoteFile, file)

	return
}
Exemplo n.º 2
0
func CopyBuildToFTP(config Configuration, lastBuild os.FileInfo, ftpConnection *goftp.FTP, buildsPath string, ftpBuildPaths string) {
	var buildFiles []os.FileInfo = GetBuildFiles(buildsPath + "/" + lastBuild.Name())
	for i := 0; i < len(buildFiles); i++ {
		var fileInfo os.FileInfo = buildFiles[i]
		var file *os.File
		var err error
		if file, err = os.Open(buildsPath + "/" + lastBuild.Name() + "/" + fileInfo.Name()); err != nil {
			panic(err)
		}
		var reader io.Reader = (*os.File)(file)
		if err := ftpConnection.Stor(ftpBuildPaths+"/"+lastBuild.Name()+"/"+fileInfo.Name(), reader); err != nil {
			panic(err)
		}
		fmt.Println(file.Name(), "copied to", ftpBuildPaths, "/", lastBuild.Name())
	}
}
Exemplo n.º 3
0
func main() {
	var err error
	var ftp *goftp.FTP

	// For debug messages: goftp.ConnectDbg("ftp.server.com:21")
	if ftp, err = goftp.Connect("ftp.server.com:8863"); 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)

	var file *os.File
	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 {
		_, 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
	})
}