S3 Upload file introduces .fuse_hidden file and s3.go Remove method is called immediately

Command: rclone mount s3remote:/foo/bar /path/to/dest --exclude "fuse_hidden" -vv --debug-fuse
The Issue : After executing the above command and trying to upload a new file to the mounted drive, I see that .fuse_hiddenxxx file is also uploaded to s3 alongside the file which I uploaded. But immediately the .fuse_hiddenxxx file is removed from s3. This is new to me and I have never faced this issue before. Can you please help me . How can i make sure that once I upload a file, only the Copy method is called and not the Remove method (in s3.go) and how to eradicate the .fuse_hiddenxxx

rclone version:
rclone v1.55.1-DEV

  • os/type: darwin
  • os/arch: amd64
  • go/version: go1.15.5
  • go/linking: dynamic
  • go/tags: cmount

File: s3.go
Method: Copy
File to upload: /local/path/something.png
Infer: The Copy function's remote parameter value is /path/to/dest/.fuse_hiddenxxxxx but I am expecting /path/to/dest/something.png . I am also expecting that only the backend/s3.go Copy method is called but the Remove method is also called which is weird. If I try to ignore .fuse_hiddenxxxx file, the upload wont succeed . Please find the DEBUG LOG BELOW (rclone-copy.txt)
rclone-copy.txt (156.1 KB)



Those .fuse_hidden files are created as placeholders (by libfuse, not rclone) for files which have been deleted but another app has open.

You should be able to use -o hard_remove which will stop those files being created at the cost of breaking apps which try to read and write from deleted files. Give it a go!