FTP to HTTP server
An FTP server that pushes uploaded files directly to a HTTP URL.
Think of ftp2http as a simple FTP layer that sits before a HTTP server.
An FTP client connects to an ftp2http server and uploads a file. The ftp2http
server immediately uploads that file to the configured HTTP URL.
The server directory always appears empty to the client, even after a file has
been uploaded. This is because uploaded files are only sent to the HTTP server,
Install ftp2http by using pip, a tool for managing Python packages.
- Run pip install ftp2http
- Create a configuration file at /etc/ftp2http.conf
- Run ftp2http
We use circusd to manage the ftp2http process. An example configuration has
been provided in the examples directory.
Authentication can be checked against user accounts specified in the
configuration file, or by configuring an authentication backend URL.
User accounts in the the configuration file
A specific configuration format is used, which can be generated using the
ftp2http -a command.
$ ftp2http -a Enter a username: dogman Enter a password: Confirm password: Add the following line to your configuration file. user: dogman:$2a$12$5NyFA4AbEfmZiexG62qIieBu/isqwTYnta8H9gH5zC0lCRVKyMrc.
HTTP Basic Authentication
FTP login authentication can be performed via HTTP requests, using HTTP basic
authentication. Set one or more authentication_backend entries in the
configuration file, and then ftp2http will perform requests to check the FTP
login details. Login details are accepted if an authentication_backend URL
returns a 2xx response.
File uploads themselves can also use HTTP basic authentication. By enabling
http_basic_auth in the configuration file, ftp2http will reuse the FTP
login details for HTTP basic authentication when sending uploaded files
to the target URL.