Skip to content

human-friendly client for Amazon Glacier cold storage

License

Notifications You must be signed in to change notification settings

yaroslaff/ThinIce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ThinIce - friendly client for Amazon Glacier

Thinice is a user-friendly client for AWS Glacier that features a local inventory. This local inventory allows you to instantly list uploaded archives, as retrieving inventory from Glacier can take several hours.

With the local inventory, you can quickly list archives by filename (ArchiveDescription), size, and upload age.

Asciinema

asciicast

Install

pipx method is recommended (pipx is easy to install).

pipx install thinice

or (better if in virtualenv):

pip3 install thinice

Configuration

Create the config directory using the command mkdir ~/.config/thinice, and then create the config file at ~/.config/thinice/thinice.env. Here’s an example:

AWS_ACCESS_KEY_ID = AK...
AWS_SECRET_ACCESS_KEY = FN...
AWS_REGION = eu-south-1
AWS_GLACIER_VAULT = mytest

Alternatively, you can supply this information via options: --key-id, --secret-key, --region, and --vault.

Basic commands

Inventory

First, you need to initialize the local inventory:

# Request inventory
thinice inventory request
# or just "thinice inventory" which will automatically guess request/accept

# Monitor when the job is complete (this may take a few hours)
thinice job

# Accept the inventory with the same command
thinice inventory accept
# or just "thinice inventory" again

# Now you can list files
thinice ls

List/filter inventory

# list all files
thinice ls

# filter by name
thinice ls *.zip

# age: older then 3 days (or -3)
thinice ls --age 3

# size: files bigger then 20Mb (or -20M to list smaller files) 
thinice ls --size 20M

Upload

Thinice supports multipart uploads and can handle upload of very large files

# No description explicitly given, description will be myarchive.zip
thinice upload /path/to/myarchive.zip

# Upload with description
thinice upload /path/to/myarchive.zip "My archive from 01/02/2003"

Download

# To download, we should *warm* the file by transitioning it from cold to warm storage
# Here we use expedited retrieval tier to get file very fast.
thinice request myarchive.zip -t expedited

# Or by the first part of the ArchiveId (default: standard tier)
thinice request S39to

# Monitor the list to see when it becomes warm (this will take a few hours)
thinice ls


# Finally, download it
# A file with the description MyServer.tar.gz will be saved as MyServer.tar.gz (only if the description is a filename)
thinice download myarchive.zip

# Download a file with an ArchiveId starting with these characters
thinice download S39to myarchive.zip

Delete

# delete archive with this ArchiveId
thinice delete S39to

# delete all archives with this ArchiveDescription
thinice delete myarchive.zip

Other commands

# help
thinice -h
thinice download -h

# list vaults
thinice vaults

# list jobs
thinice jobs