Skip to content

Commit

Permalink
requirements added, readme added
Browse files Browse the repository at this point in the history
  • Loading branch information
kaushalvivek committed Jan 31, 2021
1 parent 25e132d commit 5e64077
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 2 deletions.
76 changes: 74 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,74 @@
# s3-upload-portal
A web-portal to upload files to s3
# S3 Image Upload Portal
![version-v1.0.0](https://img.shields.io/badge/version-v1.0.0-brightgreen)
![framework-flask](https://img.shields.io/badge/framework-Flask-red)

![ui](images/ui.png)

## Contents
- [Introduction](#introduction)
- [Setup](#setup)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)
- [Author](#author)

## Introduction
This project is a monolithic Flask web-portal and micro-service which can be used to quickly setup a password-protected image upload portal for any S3 compatible storage service. I built this project as an intuitive upload portal for crowd-aggregated image uploads to an S3 instance.

## Setup
1. Set up repository and environment.
```bash
# clone this repository
git clone git@github.com:kaushalvivek/s3-upload-portal.git

# setup and use local python environment
cd s3-upload-portal
pip3 -m venv env
source env/bin/activate
```
2. Install required packages
```bash
# install required packages
pip3 install -r requirements.txt
```
3. Create a config file `settings.conf` in the project root with the following fields:
```conf
[keys]
; secret key is the application secret key
secret_key =
; password is the authentication for the upload portal
password =
[aws]
; AWS/S3 compatible credentials need to be generated
access_key_id =
secret_key =
bucket_name =
region =
[files]
; feature unavailable in v1.0.0
log_file =
[settings]
; session type is the flask session type -- typically `filesystem`
session_type =
```
4. Start the server
```bash
python3 app.py
```

## Usage
Once the application is setup, go the the `hostname:port` URL, provide the authentication password and start uploading your image file to S3 easily.

![success](images/success.png)

## Contributing
Create issues for suggestions, bugs, feature requests and feel free to extend the project.

## License
MIT License.

## Author
[@kauhalvivek](https://vivekkaushal.com)
Binary file added images/success.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/ui.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
boto3==1.16.63
botocore==1.19.63
cachelib==0.1.1
click==7.1.2
Flask==1.1.2
Flask-Session==0.3.2
itsdangerous==1.1.0
Jinja2==2.11.2
jmespath==0.10.0
MarkupSafe==1.1.1
pkg-resources==0.0.0
python-dateutil==2.8.1
s3transfer==0.3.4
six==1.15.0
urllib3==1.26.3
Werkzeug==1.0.1

0 comments on commit 5e64077

Please sign in to comment.