FTP Write Only Directories

Hi,

I have been using rclone for years to write to a remote FTP. In the past I had full access to the FTP directories but the remote company has changed things on their end and now only allow us to have "Write Only" folder access (we can write to the directories but cannot 'read' the contents). They do this for privacy reasons - because multiple people are writing to these directories.

Anyhow, since this change I am unable to use rclone FTP as it will NOT write to 'write only' directories. Rclone is able to "see" the 'write only' directories but trying to list the directory contents gives an "error listing: directory not found".

I have been manually using FileZilla to upload as it allows writing to the 'write only' directories. FileZilla actually shows that it gives you the directory listing - albeit an empty directory, but nonetheless it works and will allow write only access.

Thanks!

I am not sure whether anything new is needed.

You can try to do this with these flags:

--no-traverse
--ignore-checksum
--inplace

Details in docs

Any issues post all details as per Help and Support template.

Maybe add

--ignore-times

to force rclone to upload though if it is write only, it won't find it existing but I am not sure of how it will handle it.

Thanks for the ideas. I've tried a bunch of different flags with no luck.

Command:

/usr/local/bin/rclone copy -v --no-traverse --ignore-checksum --no-update-modtime --no-update-dir-modtime --ignore-times --inplace --exclude ".DS_Store" --stats 3s --log-file="/Users/nok/Documents/rclone.txt" "/Users/nok/Desktop/Testing.txt" BBFTP:"_Sub"

Config:

[BBFTP]
type = ftp
host = ftp.xxxxxx.com
user = XXXXXXX
pass = XXXXXXX
explicit_tls = true
no_check_certificate = true

rclone:

rclone v1.66.0
- os/version: darwin 13.6.1 (64 bit)
- os/kernel: 22.6.0 (x86_64)
- os/type: darwin
- os/arch: amd64
- go/version: go1.22.1
- go/linking: dynamic
- go/tags: cmount

When trying to copy to write only directory:

2024/04/16 09:53:04 ERROR : Testing.txt: Failed to copy: SetModTime: 550 File not found
2024/04/16 09:53:04 ERROR : Attempt 1/3 failed with 1 errors and: SetModTime: 550 File not found
2024/04/16 09:53:05 ERROR : Testing.txt: Failed to copy: SetModTime: 550 File not found
2024/04/16 09:53:05 ERROR : Attempt 2/3 failed with 1 errors and: SetModTime: 550 File not found
2024/04/16 09:53:05 ERROR : Testing.txt: Failed to copy: SetModTime: 550 File not found
2024/04/16 09:53:05 ERROR : Attempt 3/3 failed with 1 errors and: SetModTime: 550 File not found
2024/04/16 09:53:05 INFO  : 
Transferred:   	          0 B / 0 B, -, 0 B/s, ETA -
Errors:                 1 (retrying may help)
Elapsed time:         1.2s

When trying to copy to full access directory (using the same command but a different directory):

2024/04/16 09:59:45 INFO  : Testing.txt: Copied (replaced existing)
2024/04/16 09:59:45 INFO  : 
Transferred:   	          0 B / 0 B, -, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.6s

Also, for clarity, using the --no-traverse --ignore-checksum --inplace recommended flags and NOT these additional flags that I tried --no-update-modtime --no-update-dir-modtime --ignore-times, I still get the same errors as above.

@kapitainsky Any ideas? Thanks!

Have you tried all above flags together?

--no-traverse --ignore-checksum --inplace --no-update-modtime --no-update-dir-modtime --ignore-times

As this error:

says it fails to update destination mod time.

Effectively what we are trying here is to disable all rclone operations which require reading destination. Do not list destination content, do not read checksum, do not use temp files, do not set modtime...

@kapitainsky Hi, yes that's the command I tried above. The statement I made regarding 'for clarity' was just to say that I tried the original flags that you suggested, and then separately tried ALL the flags (as shown in my 'command') and in both instances I received the same error.

Yes exactly. This is why I went through the manual and tried to find 'all commands' that would stop rclone from doing any read operations.

Thanks

I have run our of ideas here. Maybe others can suggest something?