mirror of
https://github.com/rclone/rclone.git
synced 2024-12-22 15:11:56 +01:00
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
04128f97ee
commit
8584bef006
@ -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 New Issue
Block a user