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
|
retry int = 0
|
||||||
intrv int = 0
|
intrv int = 0
|
||||||
)
|
)
|
||||||
|
var ftp *goftp.FTP
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
flag.StringVar(&host, "h", "203.93.100.58", "FTPS Server Address")
|
flag.StringVar(&host, "h", "203.93.100.58", "FTPS Server Address")
|
||||||
@ -47,46 +48,61 @@ func main() {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
err := _InitFTP()
|
||||||
var ftp *goftp.FTP
|
|
||||||
|
|
||||||
ftp, err = goftp.Connect(fmt.Sprintf("%s:%s", host, port))
|
|
||||||
if err != nil {
|
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)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
switch act {
|
switch act {
|
||||||
case "list":
|
case "list":
|
||||||
_List(ftp, rmt)
|
_List(rmt)
|
||||||
case "dnld":
|
case "dnld":
|
||||||
_Download(ftp, loc, rmt)
|
_Download(loc, rmt)
|
||||||
case "upld":
|
case "upld":
|
||||||
_Upload(ftp, loc, rmt)
|
_Upload(loc, rmt)
|
||||||
default:
|
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)
|
files, err := ftp.List(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[ERR] %s\r\n", err.Error())
|
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)
|
log.Printf("[MSG] Downloading: %s\r\n", remote)
|
||||||
var err error
|
var err error
|
||||||
base := filepath.Base(remote)
|
base := filepath.Base(remote)
|
||||||
for i := 0; i <= retry; i++ {
|
for i := 0; i <= retry; i++ {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
time.Sleep(time.Second * time.Duration(intrv))
|
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 {
|
_, err = ftp.Retr(remote, func(rdr io.Reader) error {
|
||||||
wtr, oserr := os.Create(local + base)
|
wtr, oserr := os.Create(local + base)
|
||||||
@ -123,20 +139,20 @@ func _Download(ftp *goftp.FTP, local, remote string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[***] %s\r\n", err.Error())
|
log.Printf("[***] %s; %s\r\n", remote, local)
|
||||||
log.Printf("[ERR] Download NG: %s\r\n", remote)
|
log.Printf("[ERR] Download NG: %s; %s\r\n", remote, err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Printf("[MSG] Download OK: %s\r\n", remote)
|
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)
|
log.Printf("[MSG] Uploading: %s\r\n", local)
|
||||||
var err error
|
var err error
|
||||||
for i := 0; i <= retry; i++ {
|
for i := 0; i <= retry; i++ {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
time.Sleep(time.Second * time.Duration(intrv))
|
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)
|
err = ftp.Cwd(remote)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -149,8 +165,8 @@ func _Upload(ftp *goftp.FTP, local, remote string) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[***] %s\r\n", err.Error())
|
log.Printf("[***] %s; %s\r\n", remote, local)
|
||||||
log.Printf("[ERR] Upload NG: %s\r\n", local)
|
log.Printf("[ERR] Upload NG: %s; %s\r\n", local, err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Printf("[MSG] Upload OK: %s\r\n", local)
|
log.Printf("[MSG] Upload OK: %s\r\n", local)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user