Inspiration
Amazon put an ad some weeks ago on their main website mentioning their unlimited picture storage on Amazon Drive if you have a prime account. We tried uploading and downloading big 4K images and saw that the uploaded and downloaded files were exactly the same (hash perfect) so we noticed that they do not realize any kind of compression to the stored images.
After that the first thing that came to the mind was: Ok, if I change the extension of any file like a zip or pdf to png or jpg will it work? Not surprisingly it didn't. Not even changing all the headers to image headers. Then is when the main idea for this tool came up. What if we can encode all the information contained in a file into a perfectly formed image so Amazon cannot tell the difference?
What it does
My Infinity Cloud.png is a desktop app that allows you to store unlimited files on Amazon-Drive for free.
Why is this storage unlimited? And why is it for free? This whole project is based on the premise that Amazon-Drive provides unlimited image storage, but then it is limited for any other kind of file.
There's where our tools comes in. It lets you encode any file you choose to a set of images so they can be uploaded to AmazonDrive afterwards. Subsequently you can download that album whenever you want use the tool again to decode its contents to get the original file, byte and hash perfect
Infinite cloud storage for free!
How we built it
We started with a quick working prototype that encoded/decoded a simple zip file into and from one image. Afterwards, we built on top of that to make it work with very large input files of any type, encoding and decoding them into and from multiple chunks (as .png images). Finally, we built a user interface to manage the application flow.
In summary, we read any file as byte data, and encode this data as pixels of an image so it can be saved as png. Then the same but on the inverse with decoding, we read all the image blocks of data and build the bytes of the original file back. and it is pretty fast!
Challenges we ran into
- Convert a vector to a correctly shaped matrix
- Having multiple windows on the UI that do not overlap
- Not really a challenge, but could not upload to Amazon-drive through API since they do not have keys available at the moment
Accomplishments that we're proud of
- It works! And it runs fast!
What we learned
- How to do multiprocessing on python and its limitations
- How to implement a desktop app with python using Tkinter
- A member of the group had to learn python from scratch
What's next for My Infinity Cloud.png
- Build a web Front-end to connect them all!
- Amazon-drive API integration
Log in or sign up for Devpost to join the conversation.