1
0
mirror of https://github.com/rclone/rclone.git synced 2026-01-09 20:13:21 +00:00

ftp: fix remaining issues to make tests work

* fix root
  * factor ftpConnection
  * fix path munging
  * fix recursive dir loops after update
  * use fs.Trace and comment out debugs
  * re-arrange and supplement docs
This commit is contained in:
Nick Craig-Wood
2017-05-03 21:45:01 +01:00
parent 3ed0440bd2
commit 35c210d36f
5 changed files with 266 additions and 93 deletions

View File

@@ -24,8 +24,8 @@ Rclone is a command line program to sync files and directories to and from
* Backblaze B2
* Yandex Disk
* SFTP
* The local filesystem
* FTP
* The local filesystem
Features

View File

@@ -7,29 +7,117 @@ date: "2017-01-01"
<i class="fa fa-file"></i> FTP
------------------------------
FTP support is provided via
FTP is the File Transfer Protocl. FTP support is provided using the
[github.com/jlaffaye/ftp](https://godoc.org/github.com/jlaffaye/ftp)
package.
### Configuration ###
Here is an example of making an FTP configuration. First run
An Ftp backend only needs an Url and and username and password. With
rclone config
This will guide you through an interactive setup process. An FTP
backend only needs an URL and and username and password. With
anonymous FTP server you will need to use `anonymous` as username and
your email address as password.
Example:
```
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.
Choose a number from below, or type in your own value
1 / Amazon Drive
\ "amazon cloud drive"
2 / Amazon S3 (also Dreamhost, Ceph, Minio)
\ "s3"
3 / Backblaze B2
\ "b2"
4 / Dropbox
\ "dropbox"
5 / Encrypt/Decrypt a remote
\ "crypt"
6 / FTP interface
\ "ftp"
7 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
8 / Google Drive
\ "drive"
9 / Hubic
\ "hubic"
10 / Local Disk
\ "local"
11 / Microsoft OneDrive
\ "onedrive"
12 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
13 / SSH/SFTP Connection
\ "sftp"
14 / Yandex Disk
\ "yandex"
Storage> ftp
Username
username> anonymous
Password
y) Yes type in my own password
g) Generate random password
y/g> y
Enter the password:
password:
Confirm the password:
password:
FTP URL
url> ftp://ftp.mirrorservice.org/
Remote config
--------------------
[remote]
type = Ftp
username = anonymous
password = john.snow@example.org
url = ftp://ftp.kernel.org/pub
password = *** ENCRYPTED ***
url = ftp://ftp.mirrorservice.org/
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
```
### Unsupported features ###
This remote is called `remote` and can now be used like this
FTP backends does not support:
See all directories in the home directory
* Any hash mechanism
* Modified Time
* remote copy/move
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 /home/local/directory remote:directory
### Modified time ###
FTP does not support modified times. Any times you see on the server
will be time of upload.
### Checksums ###
FTP does not support any checksums.
### Limitations ###
Note that since FTP isn't HTTP based the following flags don't work
with it: `--dump-headers`, `--dump-bodies`, `--dump-auth`
Note that `--timeout` and `--contimeout` aren't supported.
FTP could support server side move but doesn't yet.

View File

@@ -61,6 +61,7 @@
<li><a href="/local/"><i class="fa fa-file"></i> Local</a></li>
<li><a href="/yandex/"><i class="fa fa-space-shuttle"></i> Yandex Disk</a></li>
<li><a href="/sftp/"><i class="fa fa-server"></i> SFTP</a></li>
<li><a href="/ftp/"><i class="fa fa-file"></i> FTP</a></li>
<li><a href="/crypt/"><i class="fa fa-lock"></i> Crypt (encrypts the above)</a></li>
</ul>
</li>