FTP is one of the oldest application protocols: it appeared long before HTTP and even TCP/IP, back in 1971, and is still widely used. It is through FTP that files are uploaded to remote resources.
Our cloud storage also supports this popular and familiar to many users way of uploading files.
- use passive mode of operation;
- Use binary data transmission mode;
- Use UTF-8 encoding for correct display of Cyrillic file names;
- Always check the size and/or checksum of the downloaded files.
Connecting and setting up access
For security reasons, we recommend not to use the main account for FTP connection, but to create a separate (additional) user.
Selecting the connection mode
The main difference between FTP and other protocols is the use of secondary connections for file transfer. An FTP connection creates a so-called control connection that transmits protocol commands and responses to them.
To transfer files or a list of files and directories, the client first sends commands via the control connection, and then the data connection is established. This connection can be established in two modes: active and passive.
In active mode, the client informs the server of the address and port to which the secondary connection should be made. In most cases, this mode will not work if the client uses Network Name Translation (NAT) to access the Internet and does not have a public IP address.
In passive mode, in contrast, the server provides the client with the address and port for secondary connection. This mode works in almost all cases and is preferred.
Selecting the data transfer mode
FTP data transfer is performed in two main modes: text mode (sometimes called ASCII mode) and binary mode. These modes are defined by the FTP commands TYPE A and TYPE I respectively.
Transmission in text mode is often problematic. They are related to the fact that different operating systems use different endpoints.
Microsoft Windows, for example, uses CR+LF (carriage return and line feed), while Unix-like systems, including Linux and MacOS X, use only LF, and traditional MacOS systems (MacOS 9 and above) use only CR. According to RFC 959, CR+LF should be used as the end character for all files transferred via FTP.
When transferring a file to a server, the client should make sure that the file is properly formatted to meet the requirements of the system being used: if Windows is used, nothing is removed; if *nix systems are used, the extra CR is removed; and if older versions of MacOS are used, the extra LF is removed.
Similar operations are performed when downloading files from the server: the server causes the lines to end up looking like CR+LF, and the client deletes unnecessary lines after receiving the file.
When the client and server are running on different operating systems, the files transferred are changed. Therefore, the text mode is not suitable for transferring files with any characters, for example, images or videos: they will be corrupted and will not be readable at all in the future.
Binary mode transmits files without changes. When working with cloud storage via FTP it is strongly recommended to use it.
For correct display of Cyrillic file names it is recommended to use UTF-8 encoding.
Connection failure and data integrity
Unlike the Swift protocol (access to the storage via this protocol is performed, for example, with the help of supload or swift-client utilities), FTP does not guarantee the integrity of the transferred data: in case of connection breakage in the Storage not the whole file will be saved, but only its part.
To make sure the integrity of the data stored in the storage, it is recommended to check the size or checksum of the uploaded files.
The maximum size of the downloaded file is 5 GB. Only files up to 5 GB can be uploaded to the storage. This limitation does not apply to downloading files.
If the connection is made via FTP, but there is no activity (no file transfer or other operations), the server closes the connection after a while (usually a couple of minutes). Therefore, it is not recommended to connect FTP as a disk or a remote file system, if the software used does not support automatic reconnection.
Only empty folders or containers can be deleted via FTP. Before you delete a folder or container, you must first recursively delete all files and folders below.
Only empty folders can be renamed. Containers (i.e., first level folders) do not rename.
The operation of renaming large files can take a long time.