update 11/06-1
This commit is contained in:
parent
75c147d3dd
commit
56b4d89e9d
BIN
ftpsClient.exe
BIN
ftpsClient.exe
Binary file not shown.
@ -24,6 +24,7 @@ var (
|
||||
retry int = 0
|
||||
intrv int = 0
|
||||
)
|
||||
var ftp *goftp.FTP
|
||||
|
||||
func init() {
|
||||
flag.StringVar(&host, "h", "203.93.100.58", "FTPS Server Address")
|
||||
@ -47,46 +48,61 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
var err error
|
||||
var ftp *goftp.FTP
|
||||
|
||||
ftp, err = goftp.Connect(fmt.Sprintf("%s:%s", host, port))
|
||||
err := _InitFTP()
|
||||
if err != nil {
|
||||
log.Printf("[ERR] %s\r\n", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
defer ftp.Close()
|
||||
|
||||
cfg := tls.Config{
|
||||
InsecureSkipVerify: true,
|
||||
MinVersion: tls.VersionTLS10,
|
||||
}
|
||||
|
||||
err = ftp.AuthTLS(&cfg)
|
||||
if err != nil {
|
||||
log.Printf("[ERR] %s\r\n", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
err = ftp.Login(user, pswd)
|
||||
if err != nil {
|
||||
log.Printf("[ERR] %s\r\n", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
switch act {
|
||||
case "list":
|
||||
_List(ftp, rmt)
|
||||
_List(rmt)
|
||||
case "dnld":
|
||||
_Download(ftp, loc, rmt)
|
||||
_Download(loc, rmt)
|
||||
case "upld":
|
||||
_Upload(ftp, loc, rmt)
|
||||
_Upload(loc, rmt)
|
||||
default:
|
||||
_List(ftp, loc)
|
||||
_List(rmt)
|
||||
}
|
||||
}
|
||||
|
||||
func _List(ftp *goftp.FTP, path string) {
|
||||
func _InitFTP() error {
|
||||
var err error
|
||||
for i := 0; i <= retry; i++ {
|
||||
if i > 0 {
|
||||
fmt.Println("[###] Retrying Connect ...")
|
||||
}
|
||||
ftp, err = goftp.Connect(fmt.Sprintf("%s:%s", host, port))
|
||||
if err != nil {
|
||||
log.Printf("[ERR] %s\r\n", err.Error())
|
||||
continue
|
||||
}
|
||||
defer ftp.Close()
|
||||
|
||||
cfg := tls.Config{
|
||||
InsecureSkipVerify: true,
|
||||
MinVersion: tls.VersionTLS10,
|
||||
}
|
||||
|
||||
err = ftp.AuthTLS(&cfg)
|
||||
if err != nil {
|
||||
log.Printf("[ERR] %s\r\n", err.Error())
|
||||
continue
|
||||
}
|
||||
|
||||
err = ftp.Login(user, pswd)
|
||||
if err != nil {
|
||||
log.Printf("[ERR] %s\r\n", err.Error())
|
||||
continue
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
log.Printf("[***] %s; %s\r\n", rmt, loc)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func _List(path string) {
|
||||
files, err := ftp.List(path)
|
||||
if err != nil {
|
||||
log.Printf("[ERR] %s\r\n", err.Error())
|
||||
@ -97,14 +113,14 @@ func _List(ftp *goftp.FTP, path string) {
|
||||
}
|
||||
}
|
||||
|
||||
func _Download(ftp *goftp.FTP, local, remote string) {
|
||||
func _Download(local, remote string) {
|
||||
log.Printf("[MSG] Downloading: %s\r\n", remote)
|
||||
var err error
|
||||
base := filepath.Base(remote)
|
||||
for i := 0; i <= retry; i++ {
|
||||
if i > 0 {
|
||||
time.Sleep(time.Second * time.Duration(intrv))
|
||||
log.Printf("[***] Retrying Download %d/%d: %s\r\n", i, retry, remote)
|
||||
log.Printf("[###] Retrying Download %d/%d: %s\r\n", i, retry, remote)
|
||||
}
|
||||
_, err = ftp.Retr(remote, func(rdr io.Reader) error {
|
||||
wtr, oserr := os.Create(local + base)
|
||||
@ -123,20 +139,20 @@ func _Download(ftp *goftp.FTP, local, remote string) {
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
log.Printf("[***] %s\r\n", err.Error())
|
||||
log.Printf("[ERR] Download NG: %s\r\n", remote)
|
||||
log.Printf("[***] %s; %s\r\n", remote, local)
|
||||
log.Printf("[ERR] Download NG: %s; %s\r\n", remote, err.Error())
|
||||
return
|
||||
}
|
||||
log.Printf("[MSG] Download OK: %s\r\n", remote)
|
||||
}
|
||||
|
||||
func _Upload(ftp *goftp.FTP, local, remote string) {
|
||||
func _Upload(local, remote string) {
|
||||
log.Printf("[MSG] Uploading: %s\r\n", local)
|
||||
var err error
|
||||
for i := 0; i <= retry; i++ {
|
||||
if i > 0 {
|
||||
time.Sleep(time.Second * time.Duration(intrv))
|
||||
log.Printf("[***] Retrying Upload %d/%d: %s\r\n", i, retry, local)
|
||||
log.Printf("[###] Retrying Upload %d/%d: %s\r\n", i, retry, local)
|
||||
}
|
||||
err = ftp.Cwd(remote)
|
||||
if err != nil {
|
||||
@ -149,8 +165,8 @@ func _Upload(ftp *goftp.FTP, local, remote string) {
|
||||
break
|
||||
}
|
||||
if err != nil {
|
||||
log.Printf("[***] %s\r\n", err.Error())
|
||||
log.Printf("[ERR] Upload NG: %s\r\n", local)
|
||||
log.Printf("[***] %s; %s\r\n", remote, local)
|
||||
log.Printf("[ERR] Upload NG: %s; %s\r\n", local, err.Error())
|
||||
return
|
||||
}
|
||||
log.Printf("[MSG] Upload OK: %s\r\n", local)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user