Display individual transfer progress

Improve progress printing by displaying individual file progress, as well
as a moving average speed with ETA. Example output:

2015/09/15 16:38:21
Transferred:    183599104 Bytes (4646.49 kByte/s)
Errors:                 0
Checks:                 1
Transferred:            0
Elapsed time:       38.5s
Transferring:
 * 01_06_14.mp3: 33% done. avg: 1280.5, cur: 1288.8 kByte/s. ETA: 1m12s
 * 01_12_15.mp3: 33% done. avg: 1002.2, cur:  943.4 kByte/s. ETA: 1m17s
 * 01_13_14.mp3: 48% done. avg: 1456.8, cur: 1425.2 kByte/s. ETA: 39s
 * 01_19_15.mp3: 28% done. avg: 1226.9, cur: 1114.4 kByte/s. ETA: 1m37s
This commit is contained in:
klauspost
2015-09-16 19:42:46 +01:00
committed by Nick Craig-Wood
parent 3219334c3e
commit 0a5870208e
2 changed files with 218 additions and 40 deletions
+5 -5
View File
@@ -196,7 +196,7 @@ tryAgain:
ErrorLog(src, "Failed to open: %s", err)
return
}
in := NewAccount(in0) // account the transfer
in := NewAccount(in0, src) // account the transfer
if doUpdate {
actionTaken = "Copied (updated existing)"
@@ -621,7 +621,7 @@ func syncFprintf(w io.Writer, format string, a ...interface{}) (n int, err error
return fmt.Fprintf(w, format, a...)
}
// List the Fs to stdout
// List the Fs to the supplied writer
//
// Shows size and path
//
@@ -632,7 +632,7 @@ func List(f Fs, w io.Writer) error {
})
}
// List the Fs to stdout
// List the Fs to the supplied writer
//
// Shows size, mod time and path
//
@@ -646,7 +646,7 @@ func ListLong(f Fs, w io.Writer) error {
})
}
// List the Fs to stdout
// List the Fs to the supplied writer
//
// Produces the same output as the md5sum command
//
@@ -664,7 +664,7 @@ func Md5sum(f Fs, w io.Writer) error {
})
}
// List the directories/buckets/containers in the Fs to stdout
// List the directories/buckets/containers in the Fs to the supplied writer
func ListDir(f Fs, w io.Writer) error {
for dir := range f.ListDir() {
syncFprintf(w, "%12d %13s %9d %s\n", dir.Bytes, dir.When.Format("2006-01-02 15:04:05"), dir.Count, dir.Name)