forked from TrueCloudLab/rclone
sync: fix case normalisation on s3
Before this change when the sync routine attempted to normalise a case, say from "FiLe.txt" to "file.txt" this caused a 400 Bad Request error: > This copy request is illegal because it is trying to copy an object > to itself without changing the object's metadata, storage class, > website redirect location or encryption attributes. This was caused by passing the same object as the source and destination to the move routine, whereas the destination object had a different case and didn't exist, so should have been passed as nil. See: https://github.com/rclone/rclone/pull/7743#discussion_r1557345906
This commit is contained in:
parent
93955b755f
commit
f2e693f722
1 changed files with 1 additions and 1 deletions
|
@ -386,7 +386,7 @@ func (s *syncCopyMove) pairChecker(in *pipe, out *pipe, fraction int, wg *sync.W
|
||||||
}
|
}
|
||||||
// Fix case for case insensitive filesystems
|
// Fix case for case insensitive filesystems
|
||||||
if s.ci.FixCase && !s.ci.Immutable && src.Remote() != pair.Dst.Remote() {
|
if s.ci.FixCase && !s.ci.Immutable && src.Remote() != pair.Dst.Remote() {
|
||||||
if newDst, err := operations.Move(s.ctx, s.fdst, pair.Dst, src.Remote(), pair.Dst); err != nil {
|
if newDst, err := operations.Move(s.ctx, s.fdst, nil, src.Remote(), pair.Dst); err != nil {
|
||||||
fs.Errorf(pair.Dst, "Error while attempting to rename to %s: %v", src.Remote(), err)
|
fs.Errorf(pair.Dst, "Error while attempting to rename to %s: %v", src.Remote(), err)
|
||||||
s.processError(err)
|
s.processError(err)
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue