我使用/mnt/s3
在s3fs
本地安装了一个S3存储桶。
我可以手动cp -r /my-dir/. /mnt/s3
,testfile.txt
中的文件/mnt/s3
将按预期被覆盖,而不会出现错误。
但是,当使用rsync
执行此操作时,如果存储桶中已存在该文件,则会出现有关取消链接和复制的错误。 (如果存储桶中不存在同名文件 ,则将其正确复制,没有任何错误。)
$ rsync -vr --temp-dir=/tmp/rsync /my-dir/. /mnt/s3
sending incremental file list
testfile.txt
rsync: unlink "/mnt/s3/testfile.txt": Operation not permitted (1)
rsync: copy "/tmp/rsync/testfile.txt.Kkyy5n" -> "testfile.txt": Operation not permitted (1)
sent 274 bytes received 428 bytes 1,404.00 bytes/sec
total size is 95 speedup is 0.14
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
我正在使用--temp-dir
,因为否则rsync
会将临时文件复制到/mnt/s3
中,并尝试将其重命名为永久性名称。但是,rsync
无法重命名它们,也无法删除临时文件,从而导致文件复制不当,并在S3存储桶中造成很多混乱。