This example project serves as an exploration of Amazon Simple Storage Service (S3) capabilities, showcasing an implementation of some key features for developers. The project focuses on various aspects, including upload and download functionalities using signed URLs, bucket versioning, archiving, retrieval, and multipart uploads.
The project uses SST for deploying AWS Resources and Turso for storing data in a SQLite Database. UI is built with SvelteKit but can be easily replaced with a technology of your choosing. React Form is used for composing a HTML Email.
TOC:
- Signed URLs for Secure Uploads and Downloads
- Bucket Versioning
- Archiving and Retrieval
- Multipart Uploads
Demonstrates the implementation of AWS S3 signed URLs to securely upload and download files. This ensures that only authorized users with the correct credentials can perform these actions.
Illustrates the benefits of enabling bucket versioning in AWS S3, allowing for the management of different versions of objects within a bucket. This feature enhances data protection and provides a mechanism for easy rollback in case of unintended modifications.
Explores the archival capabilities of AWS S3, demonstrating how to seamlessly transition objects between storage classes to optimize costs while ensuring efficient data retrieval when needed.
Provides a detailed guide on leveraging multipart uploads for large file transfers to AWS S3. This feature enhances upload reliability and performance by breaking files into smaller parts, especially useful for handling large datasets.
- Configure AWS credentials using the AWS CLI
- Install dependencies with
npm install
(assuming Node.js is installed). - Deploy infrastructure to aws with
npx sst dev
- Launch app with
npm run dev
Feel free to use and extend this project as a foundation for integrating AWS S3 features into your applications. If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request. Happy coding!