Upload your file

Uploading...

This simple Django app uploads a file securely to Amazon S3 and generates an easily sharable presigned URL with user specified expiration. Upon clicking upload, an AJAX request is sent to the server to generate presigned post URL with specific conditions to the file being uploaded. The request returns a post URL and the client's browser then handles the upload directly to S3 via JavaScript, avoiding additional server-side load. After a successful upload, the server generates a presigned download URL that expires at the specified time. Object lifecycles in the S3 bucket are managed to ensure objects are deleted permanently within 24 hours of link expiration. HTTP/1.1 Caching is also managed to ensure expiration coincides with link expiration.

Languages used: Python, HTML, Sass, CSS, JavaScript, SQL

Frameworks used: Django, Bootstrap, JQuery, GSAP, boto3, PostrgreSQL

Infrastructure used: AWS ElasticBeanstalk, EC2, RDS, S3, ELB

Completed: March 2023

View the source code on GitHub.