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
```
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
Release history Release notifications | RSS feed
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)
Built Distribution
Close
Hashes for ftp_proxy-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce7c586e35d44c9dff2d9d4f9969a6259744c412cc14e6a417ab20b2cfcfa46e |
|
MD5 | 6cf6af4c09fe97d48849f5d1b74227f7 |
|
BLAKE2b-256 | 2808e5db902afeace5a46b702740528d28f788ebbca0cfeb649bf6f58d953988 |