# 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.
## Install
[pipx](https://github.com/pypa/pipx) method is recommended (pipx is easy to install).
~~~shell
pipx install thinice
~~~
or (better if in virtualenv):
~~~shell
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:
~~~shell
# Request inventory
thinice inventory
# Monitor when the job is complete (this may take a few hours)
thinice job
# Accept the inventory with the same command
thinice inventory
# Now you can list files
thinice ls
~~~
### Upload
Thinice supports multipart uploads and can handle upload of very large files
~~~shell
# 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
~~~shell
# 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
~~~shell
# delete archive with this ArchiveId
thinice delete S39to
# delete all archives with this ArchiveDescription
thinice delete myarchive.zip
~~~
### Other commands
~~~shell
# help
thinice -h
thinice download -h
# list vaults
thinice vaults
# list jobs
thinice jobs
~~~
Raw data
{
"_id": null,
"home_page": null,
"name": "thinice",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "API, CLI, Glacier, aws, cold, cold storage, download, friendly, inventory, s4fs, storage, tool, upload, utility",
"author": null,
"author_email": "Yaroslav Polyakov <yaroslaff@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/19/5e/f63ad967bb505ad53801187ddbc42fc6492756a1098fe2c1ed5e731a58a7/thinice-1.0.26.tar.gz",
"platform": null,
"description": "# ThinIce - friendly client for Amazon Glacier\n\nThinice 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.\n\nWith the local inventory, you can quickly list archives by filename (ArchiveDescription), size, and upload age.\n\n## Install\n[pipx](https://github.com/pypa/pipx) method is recommended (pipx is easy to install).\n~~~shell\npipx install thinice\n~~~\nor (better if in virtualenv):\n~~~shell\npip3 install thinice\n~~~\n\n## Configuration\nCreate the config directory using the command `mkdir ~/.config/thinice`, and then create the config file at `~/.config/thinice/thinice.env`. Here\u2019s an example:\n\n~~~\nAWS_ACCESS_KEY_ID = AK...\nAWS_SECRET_ACCESS_KEY = FN...\nAWS_REGION = eu-south-1\nAWS_GLACIER_VAULT = mytest\n~~~\n\nAlternatively, you can supply this information via options: `--key-id`, `--secret-key`, `--region`, and `--vault`.\n\n## Basic commands\n### Inventory\nFirst, you need to initialize the local inventory:\n~~~shell\n# Request inventory\nthinice inventory\n\n# Monitor when the job is complete (this may take a few hours)\nthinice job\n\n# Accept the inventory with the same command\nthinice inventory\n\n# Now you can list files\nthinice ls\n~~~\n\n### Upload\nThinice supports multipart uploads and can handle upload of very large files\n\n~~~shell\n# No description explicitly given, description will be myarchive.zip\nthinice upload /path/to/myarchive.zip\n\n# Upload with description\nthinice upload /path/to/myarchive.zip \"My archive from 01/02/2003\"\n~~~\n\n### Download\n~~~shell\n# To download, we should *warm* the file by transitioning it from cold to warm storage\n# Here we use expedited retrieval tier to get file very fast.\nthinice request myarchive.zip -t expedited\n\n# Or by the first part of the ArchiveId (default: standard tier)\nthinice request S39to\n\n# Monitor the list to see when it becomes warm (this will take a few hours)\nthinice ls\n\n\n# Finally, download it\n# A file with the description MyServer.tar.gz will be saved as MyServer.tar.gz (only if the description is a filename)\nthinice download myarchive.zip\n\n# Download a file with an ArchiveId starting with these characters\nthinice download S39to myarchive.zip\n~~~\n\n### Delete\n~~~shell\n# delete archive with this ArchiveId\nthinice delete S39to\n\n# delete all archives with this ArchiveDescription\nthinice delete myarchive.zip\n~~~\n\n### Other commands\n~~~shell\n# help\nthinice -h\nthinice download -h\n\n# list vaults\nthinice vaults\n\n# list jobs\nthinice jobs\n~~~\n",
"bugtrack_url": null,
"license": null,
"summary": "Human-friendly Amazon glacier API",
"version": "1.0.26",
"project_urls": {
"Homepage": "https://github.com/yaroslaff/ThinIce",
"Issues": "https://github.com/yaroslaff/showcert/ThinIce"
},
"split_keywords": [
"api",
" cli",
" glacier",
" aws",
" cold",
" cold storage",
" download",
" friendly",
" inventory",
" s4fs",
" storage",
" tool",
" upload",
" utility"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "9dc242c7e5be7dbce4486295401dedf712e15dbce5b25136503efa3808a396f5",
"md5": "dd373102b7ea7fd8b8400c5c55f7addb",
"sha256": "1e2df543f1425e7cb486eae309843c13a037dea40e7d5b60a355606d6772e100"
},
"downloads": -1,
"filename": "thinice-1.0.26-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dd373102b7ea7fd8b8400c5c55f7addb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 23675,
"upload_time": "2024-11-06T13:37:14",
"upload_time_iso_8601": "2024-11-06T13:37:14.617319Z",
"url": "https://files.pythonhosted.org/packages/9d/c2/42c7e5be7dbce4486295401dedf712e15dbce5b25136503efa3808a396f5/thinice-1.0.26-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "195ef63ad967bb505ad53801187ddbc42fc6492756a1098fe2c1ed5e731a58a7",
"md5": "aaed4a1495c9c0ad9575d5ca704f138b",
"sha256": "fa8e6d7df236ada8ac5172d616a8c14894ff268366028ac36df27c6c9a5d3e81"
},
"downloads": -1,
"filename": "thinice-1.0.26.tar.gz",
"has_sig": false,
"md5_digest": "aaed4a1495c9c0ad9575d5ca704f138b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 17209,
"upload_time": "2024-11-06T13:37:13",
"upload_time_iso_8601": "2024-11-06T13:37:13.322153Z",
"url": "https://files.pythonhosted.org/packages/19/5e/f63ad967bb505ad53801187ddbc42fc6492756a1098fe2c1ed5e731a58a7/thinice-1.0.26.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-06 13:37:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yaroslaff",
"github_project": "ThinIce",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "thinice"
}