Support copy_file_range for rclone mount
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 59.8k
- Forks
- 5.4k
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 48
Description
The associated forum post URL from https://forum.rclone.org
none
What is your current rclone version (output from rclone version)?
rclone v1.71.1
- os/version: arch (64 bit)
- os/kernel: 6.16.8-arch2-1 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.25.1 X:nodwarf5
- go/linking: dynamic
- go/tags: none
What problem are you are trying to solve?
I want rclone to instruct the remote to copy the file server-side (if it supports it) when copying files within an rclone mount.
How do you think rclone should be changed to solve that?
rclone mount should provide an implementation of the copy_file_range fuse operation, and upon recieving it send a copy request to the remote if it supports it, otherwise either:
- aswer it with an error to instruct the program requesting the operation to fall back to normal read-write copy, or
- create the copy itself by downloading and reuploading the data.
I wanted to implement this because it did not seem that hard, but the library rclone uses for fuse does not have the copy_file_range operation wired up, and is basically(?) dead so I have doubts a pr for this feature would be accepted.
So im not sure what would be the way forward for this.
How to use GitHub
- Please use the 👍 reaction to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at rclone mount's FUSE operation handling and its FUSE library integration; inspect whether copy_file_range is exposed. Trace how mount operations could request remote server-side copies and determine fallback behavior for unsupported remotes. Done means the operation is supported with a defined fallback and verified behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100