in oss/lib/cp.go [2560:2596]
func (cc *CopyCommand) skipDownload(fileName string, srcModifiedTime time.Time, object string) bool {
if cc.cpOption.startTime > 0 && srcModifiedTime.Unix() < cc.cpOption.startTime {
return true
}
if cc.cpOption.endTime > 0 && srcModifiedTime.Unix() > cc.cpOption.endTime {
return true
}
if cc.cpOption.snapshotPath != "" || cc.cpOption.update {
if cc.cpOption.snapshotPath != "" {
tstr, err := cc.cpOption.snapshotldb.Get([]byte(object), nil)
if err == nil {
t, _ := strconv.ParseInt(string(tstr), 10, 64)
if t == srcModifiedTime.Unix() {
return true
}
}
}
if f, err := os.Stat(fileName); err == nil {
destt := f.ModTime()
if destt.Unix() >= srcModifiedTime.Unix() {
return true
}
}
} else {
if !cc.cpOption.force {
if fileInfo, err := os.Stat(fileName); err == nil {
if fileInfo.IsDir() || !cc.confirm(fileName) {
return true
}
}
}
}
return false
}