A minimalistic Web UI to conveniently upload and download files from AWS S3 compatible services
MIT License
A minimalistic UI to conveniently upload and download files from AWS S3 / Digital Ocean Space / MinIO
Live Demo: https://gaplo917.github.io/S3WebUploader
This app is built with many amazing framework, including:
This project is modified from fully-coupled electron-based project https://github.com/Yamazaki93/S3Uploader/tree/762121ab33fe4854b1ec3f94d5bcc260f05f7e6d.
Yamazaki93/S3Uploader use aws-sdk/NodeJs
inside the electron to
communicate with S3. This solved a lot of limitation of browsers, for example
getObject
API(able to show progress), then write to~/.aws
credentialsHowever, for whom want to upload things to S3 compatible service momentarily, installing an electron application has too much frictions.
Let alone, I think electron application granted too much permissions for this simple purpose (If it
can read your ~/.aws
credentials, what else can it read?).
So, I decided to rewrite the S3 communication part completely to build a fully browser-compatible version*.
* Some user experience has been changed due to browser limitation
aws-sdk-js
completely, now it is a browser-compatible treepbkdf2
hash master password
and store in LocalStorage for password verificationHmacSHA512
hash master password
to produce fixed length secret
for AES256 encryptionMinIO 's API enabled CORS by default on all buckets for all HTTP verbs. However, DigitalOceanSpace & S3 are not.
There are two ways to solve CORS:
# development
yarn install
yarn start
# Test
yarn test
# Liniting
yarn lint
# production build
yarn build
I sincerely believe I couldn't complete this project within a day (< 12 hours) without the following tools that improve my productivity of reading/writing code.
Thanks for the amazing works of Yamazaki93/S3Uploader that built with a clean and consistent Angular architecture initially.
MIT