func _Upload(client *goftp.Client, local, remote string) { files := make([]string, 0) if strings.HasPrefix(local, "@") { rdr, err := os.Open(strings.TrimPrefix(local, "@")) if err != nil { log.Printf("[ERR] %s\r\n", err.Error()) } buf := bufio.NewScanner(rdr) for buf.Scan() { if buf.Err() != nil { break } lineStr := strings.TrimSpace(buf.Text()) if lineStr == "" { continue } files = append(files, lineStr) } } else { files = append(files, local) } for i, f := range files { log.Printf("[MSG] Uploading %d: %s\r\n", i+1, f) rst := "" for r := 0; r <= retry; r++ { if r > 0 { time.Sleep(time.Millisecond * 500) log.Printf("[MSG] Retrying %d: %s\r\n", r, f) } rdr, err := os.Open(f) if err != nil { rdr.Close() rst = err.Error() continue } err = client.Store(remote, rdr) if err != nil { rdr.Close() rst = err.Error() continue } if rst != "" { log.Printf("[ERR] Upload NG: %s\r\n", f) } log.Printf("[MSG] Upload OK: %s\r\n", f) } } }