-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
25e132d
commit 5e64077
Showing
4 changed files
with
90 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |