Skip to main content

Python module to, serve files in physical memory to localhost and tunnel to a public endpoint

Project description

Versions Supported

Python

Language Stats

Language count Code coverage

Repo Stats

GitHub GitHub repo size GitHub code size

Code Stats

Modules Python

Activity

GitHub Repo created GitHub commit activity GitHub last commit

Build Status

pypi-publish pages-build-deployment

FileWare

Set up a file server to access files in local machine from anywhere on the internet.

Setup

Environment Variables:

  • username: Username to confirm identity. Defaults to user profile name.
  • password: Password for authentication.
  • port: Port number to serve. Defaults to 4443.
  • host_path: Path which is to be hosted. Defaults to home page.

To host on a public facing URL:

  • ngrok_auth: Ngrok token.

Usage

python3 -m pip install fileware

With Threading

from threading import Thread

import fileware


fileware.models.env.port = 4568
fileware.models.env.host_dir = "movies"


if __name__ == '__main__':
    # Initiates the connection and creates a new process if ngrok auth token is valid.
    response = fileware.initiate_connection()
    print(response.url)

    # Runs the server in a thread alongside starting the ngrok process created previously.
    thread = Thread(target=fileware.serve,
                    kwargs={'http_server': response.server, 'process': response.process})
    thread.start()

    # Do your own task here

    # Shutdown the server and join the thread which spun the server up.
    fileware.shutdown(http_server=response.server, process=response.process)
    thread.join(2e+1)

Without Threading - File Server will terminate only when the main process is killed.

import fileware


if __name__ == '__main__':
    response = fileware.initiate_connection()
    print(response.url)
    fileware.serve(http_server=response.server,process=response.process)

Env vars can be loaded by placing a .env file in current working directory.

The serve function can also take arguments which can be used to override env vars.

Pypi Package

pypi-module

https://pypi.org/project/fileware/

Coding Standards

Docstring format: Google
Styling conventions: PEP 8
Clean code with pre-commit hooks: flake8 and isort

Linting

PreCommit will ensure linting, and the doc creation are run on every commit.

Requirement

pip install --no-cache pre-commit recommonmark sphinx==5.1.1

Usage

pre-commit run --all-files

Pypi Package

pypi-module

https://pypi.org/project/fileware/

Runbook

made-with-sphinx-doc

https://thevickypedia.github.io/fileware/

License & copyright

© Vignesh Rao

Licensed under the MIT License

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

fileware-1.3-py3-none-any.whl (23.9 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