19a8b66cee
Create a full loop of documentation for rclone about, backends overview and individual backend pages. Discussion: https://github.com/rclone/rclone/pull/4774 relates Previously pull was requested, in part, under ref https://github.com/rclone/rclone/pull/4801 Notes: Introduce a tentative draft see-link format the end of sections to try rather than lots of in-para links. Update about.go incl link to list of backends not supporting about. In list of backends not supporting about, include link to about command reference. I appreciate there may be decisions to make going forward about whether command links should be code formatted, and using proper pretty url links, but I have fudged that for now. Update backend pages that do not support about with wording used previously for ftp - it is in passive voice but I can live with it. (my own wording and fault). The note is applied to a limitations section. If one does not already exist it is created (even if there are other limitations with their own sections)
276 lines
7.2 KiB
Markdown
276 lines
7.2 KiB
Markdown
---
|
|
title: "FTP"
|
|
description: "Rclone docs for FTP backend"
|
|
---
|
|
|
|
{{< icon "fa fa-file" >}} FTP
|
|
------------------------------
|
|
|
|
FTP is the File Transfer Protocol. Rclone FTP support is provided using the
|
|
[github.com/jlaffaye/ftp](https://godoc.org/github.com/jlaffaye/ftp)
|
|
package.
|
|
|
|
[Limitations of Rclone's FTP backend](#Limitations)
|
|
|
|
Paths are specified as `remote:path`. If the path does not begin with
|
|
a `/` it is relative to the home directory of the user. An empty path
|
|
`remote:` refers to the user's home directory.
|
|
|
|
To create an FTP configuration named `remote`, run
|
|
|
|
rclone config
|
|
|
|
Rclone config guides you through an interactive setup process. A minimal
|
|
rclone FTP remote definition only requires host, username and password.
|
|
For an anonymous FTP server, use `anonymous` as username and your email
|
|
address as password.
|
|
|
|
```
|
|
No remotes found - make a new one
|
|
n) New remote
|
|
r) Rename remote
|
|
c) Copy remote
|
|
s) Set configuration password
|
|
q) Quit config
|
|
n/r/c/s/q> n
|
|
name> remote
|
|
Type of storage to configure.
|
|
Enter a string value. Press Enter for the default ("").
|
|
Choose a number from below, or type in your own value
|
|
[snip]
|
|
XX / FTP Connection
|
|
\ "ftp"
|
|
[snip]
|
|
Storage> ftp
|
|
** See help for ftp backend at: https://rclone.org/ftp/ **
|
|
|
|
FTP host to connect to
|
|
Enter a string value. Press Enter for the default ("").
|
|
Choose a number from below, or type in your own value
|
|
1 / Connect to ftp.example.com
|
|
\ "ftp.example.com"
|
|
host> ftp.example.com
|
|
FTP username, leave blank for current username, $USER
|
|
Enter a string value. Press Enter for the default ("").
|
|
user>
|
|
FTP port, leave blank to use default (21)
|
|
Enter a string value. Press Enter for the default ("").
|
|
port>
|
|
FTP password
|
|
y) Yes type in my own password
|
|
g) Generate random password
|
|
y/g> y
|
|
Enter the password:
|
|
password:
|
|
Confirm the password:
|
|
password:
|
|
Use FTP over TLS (Implicit)
|
|
Enter a boolean value (true or false). Press Enter for the default ("false").
|
|
tls>
|
|
Use FTP over TLS (Explicit)
|
|
Enter a boolean value (true or false). Press Enter for the default ("false").
|
|
explicit_tls>
|
|
Remote config
|
|
--------------------
|
|
[remote]
|
|
type = ftp
|
|
host = ftp.example.com
|
|
pass = *** ENCRYPTED ***
|
|
--------------------
|
|
y) Yes this is OK
|
|
e) Edit this remote
|
|
d) Delete this remote
|
|
y/e/d> y
|
|
```
|
|
|
|
To see all directories in the home directory of `remote`
|
|
|
|
rclone lsd remote:
|
|
|
|
Make a new directory
|
|
|
|
rclone mkdir remote:path/to/directory
|
|
|
|
List the contents of a directory
|
|
|
|
rclone ls remote:path/to/directory
|
|
|
|
Sync `/home/local/directory` to the remote directory, deleting any
|
|
excess files in the directory.
|
|
|
|
rclone sync -i /home/local/directory remote:directory
|
|
|
|
### Example without a config file ###
|
|
|
|
rclone lsf :ftp: --ftp-host=speedtest.tele2.net --ftp-user=anonymous --ftp-pass=`rclone obscure dummy`
|
|
|
|
|
|
### Implicit TLS ###
|
|
|
|
Rlone FTP supports implicit FTP over TLS servers (FTPS). This has to
|
|
be enabled in the FTP backend config for the remote, or with
|
|
`[--ftp-tls]{#ftp-tls}`. The default FTPS port is `990`, not `21` and
|
|
can be set with `[--ftp-port]{#ftp-port}`.
|
|
|
|
{{< rem autogenerated options start" - DO NOT EDIT - instead edit fs.RegInfo in backend/ftp/ftp.go then run make backenddocs" >}}
|
|
### Standard Options
|
|
|
|
Here are the standard options specific to ftp (FTP Connection).
|
|
|
|
#### --ftp-host
|
|
|
|
FTP host to connect to
|
|
|
|
- Config: host
|
|
- Env Var: RCLONE_FTP_HOST
|
|
- Type: string
|
|
- Default: ""
|
|
- Examples:
|
|
- "ftp.example.com"
|
|
- Connect to ftp.example.com
|
|
|
|
#### --ftp-user
|
|
|
|
FTP username, leave blank for current username, $USER
|
|
|
|
- Config: user
|
|
- Env Var: RCLONE_FTP_USER
|
|
- Type: string
|
|
- Default: ""
|
|
|
|
#### --ftp-port
|
|
|
|
FTP port, leave blank to use default (21)
|
|
|
|
- Config: port
|
|
- Env Var: RCLONE_FTP_PORT
|
|
- Type: string
|
|
- Default: ""
|
|
|
|
#### --ftp-pass
|
|
|
|
FTP password
|
|
|
|
**NB** Input to this must be obscured - see [rclone obscure](/commands/rclone_obscure/).
|
|
|
|
- Config: pass
|
|
- Env Var: RCLONE_FTP_PASS
|
|
- Type: string
|
|
- Default: ""
|
|
|
|
#### --ftp-tls
|
|
|
|
Use FTPS over TLS (Implicit)
|
|
When using implicit FTP over TLS the client will connect using TLS
|
|
right from the start, which in turn breaks the compatibility with
|
|
non-TLS-aware servers. This is usually served over port 990 rather
|
|
than port 21. Cannot be used in combination with explicit FTP.
|
|
|
|
- Config: tls
|
|
- Env Var: RCLONE_FTP_TLS
|
|
- Type: bool
|
|
- Default: false
|
|
|
|
#### --ftp-explicit-tls
|
|
|
|
Use FTP over TLS (Explicit)
|
|
When using explicit FTP over TLS the client explicitly request
|
|
security from the server in order to upgrade a plain text connection
|
|
to an encrypted one. Cannot be used in combination with implicit FTP.
|
|
|
|
- Config: explicit_tls
|
|
- Env Var: RCLONE_FTP_EXPLICIT_TLS
|
|
- Type: bool
|
|
- Default: false
|
|
|
|
### Advanced Options
|
|
|
|
Here are the advanced options specific to ftp (FTP Connection).
|
|
|
|
#### --ftp-concurrency
|
|
|
|
Maximum number of FTP simultaneous connections, 0 for unlimited
|
|
|
|
- Config: concurrency
|
|
- Env Var: RCLONE_FTP_CONCURRENCY
|
|
- Type: int
|
|
- Default: 0
|
|
|
|
#### --ftp-no-check-certificate
|
|
|
|
Do not verify the TLS certificate of the server
|
|
|
|
- Config: no_check_certificate
|
|
- Env Var: RCLONE_FTP_NO_CHECK_CERTIFICATE
|
|
- Type: bool
|
|
- Default: false
|
|
|
|
#### --ftp-disable-epsv
|
|
|
|
Disable using EPSV even if server advertises support
|
|
|
|
- Config: disable_epsv
|
|
- Env Var: RCLONE_FTP_DISABLE_EPSV
|
|
- Type: bool
|
|
- Default: false
|
|
|
|
#### --ftp-encoding
|
|
|
|
This sets the encoding for the backend.
|
|
|
|
See: the [encoding section in the overview](/overview/#encoding) for more info.
|
|
|
|
- Config: encoding
|
|
- Env Var: RCLONE_FTP_ENCODING
|
|
- Type: MultiEncoder
|
|
- Default: Slash,Del,Ctl,RightSpace,Dot
|
|
|
|
{{< rem autogenerated options stop >}}
|
|
|
|
### Limitations ###
|
|
|
|
Modified times are not supported. Times you see on the FTP server
|
|
through rclone are time of upload.
|
|
|
|
Rclone's FTP backend does not support any checksums but can compare
|
|
file sizes.
|
|
|
|
`rclone about` is not supported by the FTP backend. Backends without
|
|
this capability cannot determine free space for an rclone mount or
|
|
use policy `mfs` (most free space) as a member of an rclone union
|
|
remote.
|
|
|
|
See [List of backends that do not support rclone about](https://rclone.org/overview/#optional-features)
|
|
See [rclone about](https://rclone.org/commands/rclone_about/)
|
|
|
|
The implementation of : `--dump headers`,
|
|
`--dump bodies`, `--dump auth` for debugging isn't the same as
|
|
for rclone HTTP based backends - it has less fine grained control.
|
|
|
|
`--timeout` isn't supported (but `--contimeout` is).
|
|
|
|
`--bind` isn't supported.
|
|
|
|
Rclone's FTP backend could support server-side move but does not
|
|
at present.
|
|
|
|
The `ftp_proxy` environment variable is not currently supported.
|
|
|
|
#### Restricted filename characters
|
|
|
|
In addition to the [default restricted characters set](/overview/#restricted-characters)
|
|
the following characters are also replaced:
|
|
|
|
File names cannot end with the following characters. Repacement is
|
|
limited to the last character in a file name:
|
|
|
|
| Character | Value | Replacement |
|
|
| --------- |:-----:|:-----------:|
|
|
| SP | 0x20 | ␠ |
|
|
|
|
Not all FTP servers can have all characters in file names, for example:
|
|
|
|
| FTP Server| Forbidden characters |
|
|
| --------- |:--------------------:|
|
|
| proftpd | `*` |
|
|
| pureftpd | `\ [ ]` |
|