Saketh Raman KS
Cloudwiry Hackathon 2022
The solution uses a FastAPI backend along with a CLI Frontend and PostgreSQL for the database.
Streaming is supported during both upload and download to enable transfer of large files.
The server compresses files using gzip compression before writing them to disk.
The solution is deployed on a Microsoft Azure Virtual Machine.
- Supported operations:
- Upload
- Download
- Rename
- Update
- Share
- Revoke
- Delete
- Support for streaming uploads and downloads
- Easy to use CLI client
- Compression using gzip
- User based access control using three permission levels - Owner, Editor, and Viewer
Click here for a demo of the application.
Note: An instance of the server is deployed at the IP address 20.127.120.66 on port 4567
- Python 3.8
- virtualenv
- A server running PostgreSQL
- Clone the repository to a local machine
- Install Python 3.8 if not installed already
- Navigate to the folder
Server
- Create a virtual environment using virtualenv with Python 3.8
- Activate the virtual environment
- Install dependencies using
pip install -r requirements.txt
- Run
alembic upgrade head
to create the necessary tables in the database - Create a file
.env
with the necessary configuration information. A sample.env.example
is provided in the repository - Start the server with
python main.py
- Done!
- Python 3.8
- virtualenv
- A BlobStorage server
- Clone the repository to a local machine
- Install Python 3.8 if not installed already
- Navigate to the folder
Client
- Create a virtual environment using virtualenv with Python 3.8
- Activate the virtual environment
- Install dependencies using
pip install -r requirements.txt
- Create a file
.env
with the necessary configuration information. A sample.env.example
is provided in the repository - Start the server with
python main.py
- Done! The client can be terminated by pressing
Ctrl + D
Note: Occasional connection resets occur while using the deployed server. In such cases restart the client and re-run the command.
Operation | Owner | Editor | Viewer |
---|---|---|---|
Download | ✅ | ✅ | ✅ |
Rename | ✅ | ✅ | ✖ |
Update | ✅ | ✅ | ✖ |
Share | ✅ | ✖ | ✖ |
Revoke | ✅ | ✖ | ✖ |
Delete | ✅ | ✖ | ✖ |
- Saketh Raman KS