本文整理匯總了Golang中github.com/dutchcoders/goftp.FTP類的典型用法代碼示例。如果您正苦於以下問題:Golang FTP類的具體用法?Golang FTP怎麽用?Golang FTP使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了FTP類的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: GetFolders
func GetFolders(ftp *goftp.FTP, path string) []string {
var err error
var filesAndFolders []string
if filesAndFolders, err = ftp.List(path); err != nil {
panic(err)
}
var folders = make([]string, 0)
for i := 0; i < len(filesAndFolders); i++ {
var file string = filesAndFolders[i]
if strings.ContainsAny(file, "type=dir") {
folders = append(folders, file)
}
}
return folders
}
示例2: main
func main() {
configPath := os.Args[1]
fmt.Println(configPath)
var config Configuration = getConfig(configPath)
var ftpConnection *goftp.FTP
var builds []os.FileInfo = GetAllBuilds(config.BuildsPath)
var lastBuild os.FileInfo = builds[len(builds)-1]
fmt.Println("Last build is", lastBuild.Name())
ftpConnection = ftp.GetFtpConnection(config.FtpHost, config.FtpUser, config.FtpPassword)
var currentPath string = ftp.GetCurrentPath(ftpConnection)
fmt.Println("Connection to ftp", config.FtpHost, "successfully established")
fmt.Println("Current Path is", currentPath)
fmt.Println(config.FtpBuildPaths)
for i := 0; i < len(config.FtpBuildPaths); i++ {
ftp.MakeBuildDir(ftpConnection, config.FtpBuildPaths[i]+"/"+lastBuild.Name())
var path = config.FtpBuildPaths[i]
CopyBuildToFTP(config, lastBuild, ftpConnection, config.BuildsPath, path)
}
fmt.Println("Builds transfered successfully. Exit.")
ftpConnection.Quit()
}
示例3: GetCurrentPath
func GetCurrentPath(ftp *goftp.FTP) string {
var err error
var curPath string
if curPath, err = ftp.Pwd(); err != nil {
panic(err)
}
return curPath
}
示例4: main
func main() {
var err error
var ftp *goftp.FTP
if !handleArgs() {
panic("Usage: ./logdl <host> <user> <password> <directory>")
}
args := os.Args[1:]
host := args[0]
user := args[1]
pass := args[2]
dir := golib.GetFinalArgs(args, 3)
if ftp, err = goftp.Connect(host + ":21"); err != nil {
panic(err)
}
defer ftp.Close()
if err = ftp.Login(user, pass); err != nil {
panic(err)
}
if err = ftp.Cwd(dir); err != nil {
panic(err)
}
var curpath string
if curpath, err = ftp.Pwd(); err != nil {
panic(err)
}
downloadDirectory(curpath, ftp)
}
示例5: Send
func (s FtpTarget) Send(newItems []feeds.RssResult, prices []feeds.GoldMoney) {
conf := config.GetConfig()
var perm os.FileMode = 0777
var err error
var ftp *goftp.FTP
log.Printf("...saving newData (%v) file to ftp to %v\n", len(newItems), conf.Propagate.Ftp.Url)
var newData = []byte("var data = \n")
jsave, _ := json.Marshal(newItems)
for _, e := range jsave {
newData = append(newData, e)
}
ioutil.WriteFile(conf.General.DataDir+"newData.json", newData, perm)
var file *os.File
if file, err = os.Open(conf.General.DataDir + "newData.json"); err != nil {
panic(err)
}
defer file.Close()
addr := fmt.Sprintf("%v:%v", conf.Propagate.Ftp.Url, conf.Propagate.Ftp.Port)
if ftp, err = goftp.Connect(addr); err != nil {
panic(err)
}
defer ftp.Close()
if err = ftp.Login(conf.Propagate.Ftp.Usr, conf.Propagate.Ftp.Pw); err != nil {
panic(err)
}
// This is failing for some reason????
// One line curl seems to do it.... curl -T newData.json ftp://blarblar.net --user fred:donttell
// if err := ftp.Stor("newData.json", file); err != nil {
// panic(err)
// }
log.Printf("saving prices (%v) file to ftp to webserver\n\n\n", len(prices))
var data3 = []byte("var prices = \n")
jsave2, _ := json.Marshal(prices)
for _, e := range jsave2 {
data3 = append(data3, e)
}
ioutil.WriteFile(conf.General.DataDir+"prices.json", data3, perm)
var pricesFile *os.File
if pricesFile, err = os.Open(conf.General.DataDir + "prices.json"); err != nil {
panic(err)
}
defer pricesFile.Close()
// This is failing for some reason????
// One line curl seems to do it.... curl -T price.json ftp://blarblar.net --user fred:donttell
// if err := ftp.Stor("prices.json", pricesFile); err != nil {
// panic(err)
// }
}
示例6: GetFtpConnection
func GetFtpConnection(host, user, password string) *goftp.FTP {
var err error
var ftp *goftp.FTP
if ftp, err = goftp.Connect(host); err != nil {
panic(err)
}
if err = ftp.Login(user, password); err != nil {
panic(err)
}
return ftp
}
示例7: prepareFTPConn
func prepareFTPConn(port int, host, login, password string) (*goftp.FTP, error) {
var ftp *goftp.FTP
var err error
if ftp, err = goftp.Connect(fmt.Sprintf("%s:%d", host, port)); err != nil {
return nil, err
}
if err = ftp.Login(login, password); err != nil {
return nil, err
}
return ftp, nil
}
示例8: CopyBuildToFTP
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())
}
}
示例9: downloadDirectory
func downloadDirectory(directory string, ftp *goftp.FTP) {
var files []string
var err error
if files, err = ftp.List(""); err != nil {
panic(err)
}
directory = strings.Replace(directory, "\r\n", "", -1)
for f := range files {
filename := strings.Split(files[f], "; ")
newPath := directory + "/" + filename[1]
if !strings.Contains(filename[0], "type=dir;") {
downloadFile(newPath, ftp)
} else {
ftp.Cwd(newPath)
downloadDirectory(newPath, ftp)
}
}
}
示例10: main
func main() {
var err error
var ftp *goftp.FTP
// For debug messages: goftp.ConnectDbg("ftp.server.com:21")
if ftp, err = goftp.Connect("172.8.4.101:21"); 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("bob", "[email protected]"); err != nil {
panic(err)
}
if err = ftp.Cwd("/home/bob"); err != nil {
panic(err)
}
var curpath string
if curpath, err = ftp.Pwd(); err != nil {
panic(err)
}
fmt.Printf("Current path: %s\n", 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("/home/bob", 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
})
fmt.Println(err)
}
示例11: SendFile
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
}
示例12: MakeBuildDir
func MakeBuildDir(ftp *goftp.FTP, dir string) {
var err error
if err = ftp.Mkd(dir); err != nil {
panic(err)
}
}