Skip to main content

A http to ftp proxy server application

Project description

ftp-proxy travis

Http proxy to interact with FTP servers

Install

pip install ftp-proxy

Deployment

Use the provided docker image

Usage

Using the python client

See client repository

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:

["/file1.txt", "/other.py", "/folder", "/folder/nested.txt", "/folder/subfolder"]
Download (/ftp/download)

Download a file from the ftp server Mandatory parameters:

  • path (string): path to file to download
SFTP support

SFTP support API is roughly the same as ftp, and can be achieved by switching the url prefixes from ftp to sftp The following features are not yet available for SFTP:

  • recursive listing
  • extension filtering

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

{
    "error": "<DESCRIPTION>"
}

Development

Setup

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

Deployment

 pipenv run python setup.py test
 pipenv run python setup.py sdist
 pipenv run python setup.py bdist_wheel
 pipenv run python setup.py upload

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.18.tar.gz (7.7 kB view hashes)

Uploaded Source

Built Distribution

ftp_proxy-0.0.18-py3-none-any.whl (7.1 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