Skip to main content

A http to ftp proxy server application

Project description

# ftp-proxy ![travis](https://travis-ci.com/uptilab2/ftp-proxy.svg?branch=master)
Http proxy to interact with FTP servers

## Install
`pip install ftp-proxy`

## Deployment
Use the provided [docker image](https://hub.docker.com/r/emilecaron/ftp-proxy)

## Usage
### Using the python client
See [client repository](https://github.com/uptilab2/ftp-proxy-client)

### Using an http client
ftp-proxy can be used with any http client

#### Authentication headers
All api routes expect the same authentication headers

| Header | Content | Default |
|--------|---------|---------|
| `X-ftpproxy-host` | server host | No default, mandatory header |
| `X-ftpproxy-port` | server port | 21 |
| `X-ftpproxy-user` | login | anonymous |
| `X-ftpproxy-password` | password | |

#### Available routes

##### Ping (/ftp/ping)
Test connection to the remote FTP server
Returns HTTP 200 on success

##### LS (ftp/ls)
List the files on the ftp server
Optional parameters:
- path (string): path to list content. Defaults to "/"
- recursive (true/false): recurse down subdirectories. Defaults to "false"
- extension (string): list only files with matching extension if provided (example: ".py")

Response:
```javascript
{
"files": ["file1.txt", "other.py", "folder/nested.txt"],
"directories": ["folder", "folder/subfolder"]
}
```

##### Download (/ftp/download)
Download a file from the ftp server
Mandatory parameters:
- path (string): path to file to download


#### Errors
If an error occured on the proxy or the FTP server, the request will return a HTTP 400 json response with the following format
```javascript
{
"error": "<DESCRIPTION>"
}
```

## Development
### Setup
```sh
git clone git@github.com:uptilab2/ftp-proxy.git
cd ftp-proxy

# Project uses pipenv for dependency management
# so it should be installed first
pipenv install --dev

# Run the tests:
pipenv run py.test

# Run the development server:
pipenv run python -m aiohttp.web -H 0.0.0.0 -P 5000 ftp_proxy:init_func
```


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ftp-proxy-0.0.6.tar.gz (6.6 kB view hashes)

Uploaded Source

Built Distribution

ftp_proxy-0.0.6-py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page