Can SFTP REPUT command be executed via RClone?

What is the problem you are having with rclone?

I'm would like to execute SFTP REPUT commands via rclone, so I don't have to install custom SFTP client.

Run the command 'rclone version' and share the full output of the command.

rclone v1.64.1

  • os/version: ubuntu 22.04 (64 bit)
  • os/kernel: 6.2.0-34-generic (x86_64)
  • os/type: linux
  • os/arch: amd64
  • go/version: go1.21.3
  • go/linking: static
  • go/tags: none

Which cloud storage system are you using? (eg Google Drive)

SFTP server: Docker (latest tag)

The command you were trying to run (eg rclone copy /tmp remote:tmp)

I don't know if there is an actual command that can do this.

I tried running:
rclone backend help sftp:

but just got:

2023/10/18 11:35:34 Failed to backend: sftp backend has no commands

I also saw this run function (https://github.com/rclone/rclone/blob/master/backend/sftp/sftp.go#L1515) in the source code that seems to be able to do what I need - to execute REPUT command. I don't know if this is accessible from top level rclone, or is it just internal utility function.

Please run 'rclone config redacted' and share the full output. If you get command not found, please make sure to update rclone.

[sftp]
type = sftp
host = XXX
user = XXX
port = 2222
pass = XXX
md5sum_command = none
sha1sum_command = none

It would probably help if you explain what you are trying to achieve from a high level. Maybe there is a different way to do it.

I need some kind of append operation when uploading files via rclone.

I have a producer process that is filling up files on disk, and I need these files to be distributed to other users via some storage like SFTP.

I can not wait for the producer to finish writing, as this will introduce too much latency for other users.

I also don't want to reupload the files all over again, as they might get large in size.

My idea was to periodically call SFTP REPUT to upload the diff to the SFTP server (or FTP APPEND to a FTP server), but I couldn't get it to work.

As I am already using rclone for other file manipulations, I wanted to try to use it for this as well.

You could do a continuous upload with rclone rcat which uploads from a pipe - that might help. You'd probably want --inplace also.

Rclone doesn't have an append to this file mode at the moment, so that is probably the best you'll do out of the box.

It would be possible to make rclone backend sftp commands to do extra stuff.

Or you could make a special header to tell the sftp backend to seek when uploading and apply it as --header "Upload-Seek: 123123123".

However what you really want is resume support I think which there are some plans for but nothing implemented yet.

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.