ss
Navigate back to the homepage

Spaceout

Interstellar design

UX/UI design, Web and Native App develeopement.

about meHow it's doneContact
Link to $https://www.facebook.com/spaceout/Link to $https://twitter.com/spaceoutLink to $https://www.instagram.com/spaceout/Link to $https://blog.spaceout.pl/Link to $https://dribbble.com/spaceoutLink to $https://behance.com/spaceoutLink to $https://github.com/massivDash/
AWS S3 GUI

S3 Manager

by
Luke Celitan
category: project, reading time: 2 min

S3 Manager

Hi everyone, I’m excited to share with you a project I’ve been working on for the last few months. It’s a graphical user interface to aws s3 service, which lets you easily manage your buckets, files and permissions. I have wrote it using Rust lang in the backend and svelte for a frontend, and I want to tell you how fun it was working with rust backend.

Rust is a systems programming language that focuses on performance, reliability and concurrency. It has a powerful type system, memory safety guarantees and a rich ecosystem of libraries and tools. Rust also has some unique features that make it a great choice for backend development, such as:

  • Ownership and borrowing: Rust uses these concepts to manage memory and resources without a garbage collector, avoiding runtime overhead and memory leaks.
  • Traits and generics: Rust allows you to define abstract interfaces and implement them for different types, enabling code reuse and polymorphism.
  • Async/await: Rust supports asynchronous programming with a built-in syntax that makes it easy to write concurrent code that is readable and efficient.
  • Error handling: Rust has a robust and expressive way of dealing with errors, using the Result and Option types and the ? operator.

Using Rust for the backend of my GUI project was a rewarding experience. I learned a lot about the language and its features, and I enjoyed the challenge of writing fast and reliable code. I also used some awesome crates that made my life easier, such as:

  • Tokio: A runtime for writing async applications with Rust.
  • Rusoto: A AWS SDK for Rust.
  • Warp: A web framework that provides a simple and elegant way to create RESTful APIs.
  • Sveltekit: A framework for building web applications with Svelte, a reactive frontend framework that compiles to vanilla JavaScript.

The result is a GUI application that is easy to use, responsive and cross-platform. You can download it from my GitHub repository (link below) and try it out yourself. I hope you find it useful and fun to use. If you have any feedback or suggestions, please let me know in the comments. Thanks for reading!

LightMode UI overview

LightMode LightMode

#1F2937

#52525b

#F9FAFB

#FFEDD5

#FFF7ED

Aa

Roboto Bold

Aa

Roboto Normal

Aa

Roboto Light

Aa

Audiowide Bold

Aa

Audiowide Normal

Heading H1

Heading H2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit tortor velit, non posuere leo hendrerit sit amet. Sed purus felis, blandit ac tristique id, consequat at purus. Nulla eget dignissim erat, eget suscipit velit. In hac habitasse platea dictumst. Curabitur nec laoreet tellus, vitae convallis eros. Morbi accumsan libero vitae venenatis vestibulum. Proin blandit scelerisque nisl eu sagittis.

Dark Mode UI overview

DarkMode DarkMode

#1E293B

#0F172A

#FFEDD5

#FFF7ED

#F9FAFB

#FFF

Aa

Roboto Bold

Aa

Roboto Normal

Aa

Roboto Light

Aa

Audiowide Bold

Aa

Audiowide Normal

Heading H1

Heading H2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit tortor velit, non posuere leo hendrerit sit amet. Sed purus felis, blandit ac tristique id, consequat at purus. Nulla eget dignissim erat, eget suscipit velit. In hac habitasse platea dictumst. Curabitur nec laoreet tellus, vitae convallis eros. Morbi accumsan libero vitae venenatis vestibulum. Proin blandit scelerisque nisl eu sagittis.

Installation files

releases

Features

  • Dark and light mode dependant on system preferences
  • Files, Pictures, Movies and buckets gallery (grid style)
  • Optimized for looking through the pictures / movies, lazy loading, images and movies streamed dritecly from the bucket, are loaded with presigned urls.
  • Adjustable grid gallery
  • Simple name search
  • folders filtering in movies and images pages
  • Tagging of assets
  • Folder creation
  • Multi file upload (drop files)
  • Galleries remember scroll positions while navigating the app.

AWS Account

In order to use the application you need aws account with s3 service activated. S3 app uses standard aws config files used for aws cli connection info here.

1~/.aws/credentials
1[default]
2aws_access_key_id=AKIAIOSFODNN7EXAMPLE
3aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
1~/.aws/config
1[default]
2region=us-west-2
3output=json

Alternate s3 endpoint

Set env vars S3_CUSTOM_ENDPOINT to true or 1 at your machine to alter the s3 default endpoints Set the alternative endpoint url with S3_CUSTOM_ENDPOINT_URL env

Rust lang (cargo) and node.js (npm or yarn) and tauri-cli instalations are needed to run / build the project from source

This application is based on tauri.app, RUST lang in the backend (core of the app and frontend things are handled by svelte + vite + ts combo.

Simple division: Rust manages the data and the calls, front end displays the data.

Github info

https://github.com/MassivDash/S3_Manager

Don’t forget to ⭐ the project if you found it helpful.

s