From 538505bfa5ed911575577a2e03a358a4a48d9ad4 Mon Sep 17 00:00:00 2001 From: Davies Liu Date: Sat, 7 Oct 2023 14:12:27 +0800 Subject: [PATCH] rollback some unreleted changes --- Makefile | 2 +- cmd/sync.go | 1 + pkg/object/object_storage.go | 4 ++-- pkg/sync/sync.go | 13 ++++++++----- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index d5f7ea2c3a97..ef0b693610ee 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ juicefs: Makefile cmd/*.go pkg/*/*.go go.* go build -ldflags="$(LDFLAGS)" -o juicefs . juicefs.lite: Makefile cmd/*.go pkg/*/*.go - go build -tags nogateway,nowebdav,nocos,nobos,nohdfs,noibmcos,noobs,nooss,noqingstor,noscs,nosftp,noswift,noupyun,noazure,nogs,noufile,nob2,nosqlite,nomysql,nopg,notikv,nobadger,noetcd \ + go build -tags nogateway,nowebdav,nocos,nobos,nohdfs,noibmcos,noobs,nooss,noqingstor,noscs,nosftp,noswift,noupyun,noazure,nogs,noufile,nob2,nonfs,nosqlite,nomysql,nopg,notikv,nobadger,noetcd \ -ldflags="$(LDFLAGS)" -o juicefs.lite . juicefs.ceph: Makefile cmd/*.go pkg/*/*.go diff --git a/cmd/sync.go b/cmd/sync.go index cc34a8972c2b..96ccfd880b7b 100644 --- a/cmd/sync.go +++ b/cmd/sync.go @@ -309,6 +309,7 @@ func createSyncStorage(uri string, conf *sync.Config) (object.ObjectStorage, err secretKey, _ = user.Password() } name := strings.ToLower(u.Scheme) + var endpoint string if name == "file" { endpoint = u.Path diff --git a/pkg/object/object_storage.go b/pkg/object/object_storage.go index 6d3824b445c9..a45f58693d84 100644 --- a/pkg/object/object_storage.go +++ b/pkg/object/object_storage.go @@ -214,7 +214,7 @@ func ListAllWithDelimiter(store ObjectStorage, prefix, start, end string, follow if key < start && !strings.HasPrefix(start, key) { continue } - if !entries[i].IsDir() || key == prefix || !followLink && entries[i].IsSymlink() { + if !entries[i].IsDir() || key == prefix { continue } @@ -244,7 +244,7 @@ func ListAllWithDelimiter(store ObjectStorage, prefix, start, end string, follow } else if !strings.HasPrefix(start, key) { continue } - if !entries[i].IsDir() || key == prefix || !followLink && entries[i].IsSymlink() { + if !e.IsDir() || key == prefix { continue } diff --git a/pkg/sync/sync.go b/pkg/sync/sync.go index a8caaf9ffd15..768f6b377e75 100644 --- a/pkg/sync/sync.go +++ b/pkg/sync/sync.go @@ -76,6 +76,7 @@ func formatSize(bytes int64) string { func ListAll(store object.ObjectStorage, prefix, start, end string, followLink bool) (<-chan object.Object, error) { startTime := time.Now() logger.Debugf("Iterating objects from %s with prefix %s start %q", store, prefix, start) + out := make(chan object.Object, maxResults*10) // As the result of object storage's List method doesn't include the marker key, @@ -206,7 +207,7 @@ func deleteObj(storage object.ObjectStorage, key string, dry bool) { func needCopyPerms(o1, o2 object.Object) bool { f1 := o1.(object.File) f2 := o2.(object.File) - return f2.Mode()&^os.ModeType != f1.Mode()&^os.ModeType || f2.Owner() != f1.Owner() || f2.Group() != f1.Group() + return f2.Mode() != f1.Mode() || f2.Owner() != f1.Owner() || f2.Group() != f1.Group() } func copyPerms(dst object.ObjectStorage, obj object.Object) { @@ -554,15 +555,17 @@ func worker(tasks <-chan object.Object, src, dst object.ObjectStorage, config *C break } var err error - var dataCopied bool if config.Links && obj.IsSymlink() { - err = copyLink(src, dst, key) + if err = copyLink(src, dst, key); err == nil { + copied.Increment() + break + } + logger.Errorf("copy link failed: %s", err) } else { - dataCopied = true err = copyData(src, dst, key, obj.Size()) } - if err == nil && (config.CheckAll || config.CheckNew) && dataCopied { + if err == nil && (config.CheckAll || config.CheckNew) { var equal bool if equal, err = checkSum(src, dst, key, obj.Size()); err == nil && !equal { err = fmt.Errorf("checksums of copied object %s don't match", key)