Kelvin is an Amazon Glacier client implemented in Go. I chose Go for 3 reasons:
- I want to learn Go better.
- I have really enjoyed programming in Go so far.
- Go compiles to a static binary for Mac, Windows, and Linux
Glacier in Brief
Glacier is a service offering from Amazon designed for reliably storing large quantities of data in a long time frame. Glacier has two basic abstractions, a "vault" and an "archive." An archive is a discrete storage item - an arbitrary blob of data. A vault collects archives in a namespace. Amazon automatically encrypts data at rest using AES256 and it manages the keys for you. (You may optionally tell kelvin to encrypt your files before transmission using your own keys that you control.)
The first time you run
kelvin from the command line, it will build a configuration file for you,
prompting you to enter your Amazon AWS credentials.
It will also use a set of sensible default values.
If you want to reconfigure Kelvin, you can run
kelvin --configure explicitly.
Kelvin accepts a list of pathnames or files much like GNU tar. You may exclude files or paths
--exclude) flag. By default, kelvin will treat different path specifications
as vault definitions.
/home/foo would become vault "hostname-home-foo" /home/bar would become vault "hostname-home-bar" and so on...
The default operation is to recurse through a path specification and upload files found therein as discrete archives. You may optionally tell kelvin to aggregate files into a ZIP style archive before transmission.
list-vaults create-vault <name> delete-vault <name>
Retriving an archive
XXX TODO XXX