mirror of
https://github.com/tickstep/aliyunpan.git
synced 2025-02-02 21:27:15 +08:00
add local file modified delay time to fix issue #112
This commit is contained in:
parent
fe370ca953
commit
f3b1b84439
@ -206,7 +206,7 @@ priority - 优先级,只对双向同步备份模式有效。选项支持三种
|
||||
task.Priority = syncOpt
|
||||
}
|
||||
|
||||
RunSync(task, dp, up, downloadBlockSize, uploadBlockSize, syncOpt)
|
||||
RunSync(task, dp, up, downloadBlockSize, uploadBlockSize, syncOpt, c.Int("ldt"))
|
||||
return nil
|
||||
},
|
||||
Flags: []cli.Flag{
|
||||
@ -253,6 +253,11 @@ priority - 优先级,只对双向同步备份模式有效。选项支持三种
|
||||
Usage: "是否显示文件备份过程日志,true-显示,false-不显示",
|
||||
Value: "false",
|
||||
},
|
||||
cli.IntFlag{
|
||||
Name: "ldt",
|
||||
Usage: "local delay time,本地文件修改检测延迟间隔,单位秒。如果本地文件会被频繁修改,例如录制视频文件,配置好该时间可以避免上传未录制好的文件",
|
||||
Value: 3,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -260,7 +265,7 @@ priority - 优先级,只对双向同步备份模式有效。选项支持三种
|
||||
}
|
||||
|
||||
func RunSync(defaultTask *syncdrive.SyncTask, fileDownloadParallel, fileUploadParallel int, downloadBlockSize, uploadBlockSize int64,
|
||||
flag syncdrive.SyncPriorityOption) {
|
||||
flag syncdrive.SyncPriorityOption, localDelayTime int) {
|
||||
useInternalUrl := config.Config.TransferUrlType == 2
|
||||
maxDownloadRate := config.Config.MaxDownloadRate
|
||||
maxUploadRate := config.Config.MaxUploadRate
|
||||
@ -298,14 +303,15 @@ func RunSync(defaultTask *syncdrive.SyncTask, fileDownloadParallel, fileUploadPa
|
||||
typeUrlStr = "阿里ECS内部链接"
|
||||
}
|
||||
option := syncdrive.SyncOption{
|
||||
FileDownloadParallel: fileDownloadParallel,
|
||||
FileUploadParallel: fileUploadParallel,
|
||||
FileDownloadBlockSize: downloadBlockSize,
|
||||
FileUploadBlockSize: uploadBlockSize,
|
||||
UseInternalUrl: useInternalUrl,
|
||||
MaxDownloadRate: maxDownloadRate,
|
||||
MaxUploadRate: maxUploadRate,
|
||||
SyncPriority: flag,
|
||||
FileDownloadParallel: fileDownloadParallel,
|
||||
FileUploadParallel: fileUploadParallel,
|
||||
FileDownloadBlockSize: downloadBlockSize,
|
||||
FileUploadBlockSize: uploadBlockSize,
|
||||
UseInternalUrl: useInternalUrl,
|
||||
MaxDownloadRate: maxDownloadRate,
|
||||
MaxUploadRate: maxUploadRate,
|
||||
SyncPriority: flag,
|
||||
LocalFileModifiedCheckIntervalSec: localDelayTime,
|
||||
}
|
||||
syncMgr := syncdrive.NewSyncTaskManager(activeUser, activeUser.DriveList.GetFileDriveId(), panClient, syncFolderRootPath, option)
|
||||
syncConfigFile := syncMgr.ConfigFilePath()
|
||||
|
@ -380,6 +380,9 @@ func (f *FileActionTaskManager) doFileDiffRoutine(panFiles PanFileList, localFil
|
||||
if f.task.Mode == UploadOnly || f.task.Mode == SyncTwoWay {
|
||||
// check local file modified or not
|
||||
if file.IsFile() {
|
||||
if f.syncOption.LocalFileModifiedCheckIntervalSec > 0 {
|
||||
time.Sleep(time.Duration(f.syncOption.LocalFileModifiedCheckIntervalSec) * time.Second)
|
||||
}
|
||||
if fi, fe := os.Stat(file.Path); fe == nil {
|
||||
if fi.ModTime().Unix() > file.UpdateTimeUnix() {
|
||||
logger.Verboseln("本地文件已被修改,等下一轮扫描最新的再上传: ", file.Path)
|
||||
|
@ -26,6 +26,9 @@ type (
|
||||
|
||||
// 优先级选项
|
||||
SyncPriority SyncPriorityOption
|
||||
|
||||
// 本地文件修改检测间隔
|
||||
LocalFileModifiedCheckIntervalSec int
|
||||
}
|
||||
|
||||
// SyncTaskManager 同步任务管理器
|
||||
|
Loading…
Reference in New Issue
Block a user