diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-08-15 20:23:41 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-08-15 20:23:41 -0700 |
| commit | 72eb6d5b9da9196a17f7ec854d2c4d44a84fad73 (patch) | |
| tree | 2d1f49eb248bcd3da91807b852739d8f7fe5ebfe | |
| parent | 5a7c40510f849f89b9aa72dcbc80b86a48ae4382 (diff) | |
| download | seaweedfs-72eb6d5b9da9196a17f7ec854d2c4d44a84fad73.tar.xz seaweedfs-72eb6d5b9da9196a17f7ec854d2c4d44a84fad73.zip | |
ensure no writes to remote storage if content is not changed
| -rw-r--r-- | weed/command/filer_remote_sync.go | 1 | ||||
| -rw-r--r-- | weed/filer/stream.go | 10 |
2 files changed, 7 insertions, 4 deletions
diff --git a/weed/command/filer_remote_sync.go b/weed/command/filer_remote_sync.go index 4ee34854b..c2f97cc6c 100644 --- a/weed/command/filer_remote_sync.go +++ b/weed/command/filer_remote_sync.go @@ -176,7 +176,6 @@ func followUpdatesAndUploadToRemote(option *RemoteSyncOptions, filerSource *sour if resp.Directory == message.NewParentPath && message.OldEntry.Name == message.NewEntry.Name { if filer.IsSameData(message.OldEntry, message.NewEntry) { glog.V(2).Infof("update meta: %+v", resp) - glog.V(0).Infof("delete %s", remote_storage.FormatLocation(dest)) return client.UpdateFileMetadata(dest, message.OldEntry, message.NewEntry) } } diff --git a/weed/filer/stream.go b/weed/filer/stream.go index 2a3870aac..9f28056cd 100644 --- a/weed/filer/stream.go +++ b/weed/filer/stream.go @@ -3,7 +3,6 @@ package filer import ( "bytes" "fmt" - "github.com/golang/protobuf/proto" "io" "math" "sort" @@ -39,9 +38,14 @@ func isSameChunks(a, b []*filer_pb.FileChunk) bool { if len(a) != len(b) { return false } + sort.Slice(a, func(i, j int) bool { + return strings.Compare(a[i].ETag, a[j].ETag) < 0 + }) + sort.Slice(b, func(i, j int) bool { + return strings.Compare(b[i].ETag, b[j].ETag) < 0 + }) for i := 0; i < len(a); i++ { - x, y := a[i], b[i] - if !proto.Equal(x, y) { + if a[i].ETag != b[i].ETag { return false } } |
