Skip to content

HTTP remote: add an option to forward write operations to another remote #8885

@TheGentleChainsaw

Description

@TheGentleChainsaw

What is your current rclone version (output from rclone version)?

Not the only system I use it on, but this is what I'm creating the issue from:

rclone v1.71.1
- os/version: Microsoft Windows 11 Home 24H2 24H2 (64 bit)
- os/kernel: 10.0.26100.6584 (x86_64)
- os/type: windows
- os/arch: amd64
- go/version: go1.25.1
- go/linking: static
- go/tags: cmount

What problem are you are trying to solve?

I'm using a rented server for temporary file storage before I get home and move stuff onto my local NAS. I've found that using an HTTP remote for the server's included file lists is the most reliable way to download them, but I do get a bit annoyed at having to then manually delete each file from source using another method after the downloads complete successfully.

How do you think rclone should be changed to solve that?

I was thinking that since the HTTP storage core is read-only, we could provide a way of linking an HTTP remote to a different write-capable remote for accessing the same server through a different protocol such as SFTP. As an example of what this could look like in the config file:

[something]
type = http
url = https://foo:[email protected]/files/
write_remote = /:_something_sftp:/var/www/files/ # destination_path:remote:matching_remote_path

And so, any write operations on the HTTP remote (move files on remote, delete from source after moving to destination, etc.) would happen over that other SFTP remote. Unless they're on a path that isn't covered by the write_remote option, in which case they'd still throw the usual read-only error.

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions