Encrypting Cold Storage Client
Project description
icebox - Encrypting Cold Storage Client
icebox is a command-line client for secure online file storage. All metadata is protected from unauthorized access, by using icepack for archive handling.
Supported storage backends:
- Amazon S3 (
Glacier Deep Archive
storage class) - WebDAV
- Local folder (for testing or third-party tools)
Installation
Requirements:
- Python 3.8
- age 1.0
- OpenSSH 8.0
Install with pip
or pipx:
$ pip install icebox
If pigz
or pbzip2
are installed, they will be used for faster compression.
AWS credentials
Configure AWS credentials as described in the Boto documentation. The credentials should have write access to the S3 buckets you plan to use. See the example IAM policy for recommended permissions.
Usage
Help for each command can be displayed by using the --help
option.
Create a new box
Create the box mybox for an S3 bucket called mybucket:
$ icebox init mybox s3 mybucket
Please note: encrypted metadata (several KB per put
operation) is stored
using the Standard
storage class.
Create the box mybox for a WebDAV URL:
$ icebox init mybox webdav https://example.com/webdav/folder
Store data in a box
To store a file or directory, simply specify its location:
$ icebox put mybox cat-pictures/grumpy.jpg
Retrieve data from a box
There are no directories in boxes, so you just specify the original name of the source and a destination:
$ icebox get mybox grumpy.jpg -d ~/Desktop
Bulk
retrievals from S3 can take a long time. To perform a Standard
retrieval, use the Tier
option:
$ icebox get mybox grumpy.jpg -d ~/Desktop -o Tier=Standard
Retrieval operations are tracked by icebox, so you can interrupt a pending retrieval and request the same source again later.
Delete data from a box
To delete a stored file or directory, use its original name:
$ icebox delete mybox grumpy.jpg
List data in a box
To list the contents of a box:
$ icebox list mybox
Refresh data in a box
To update local box information from the backend:
$ icebox refresh mybox
Refresh operations are tracked by icebox, so you can interrupt a refresh and continue it later.
Check the version and dependencies
$ icebox version --dependencies
icebox 1.0.0
✅ age found. (Version: v1.0.0)
✅ age-keygen found.
✅ ssh found. (Version: OpenSSH_8.2p1)
✅ ssh-keygen found.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file icebox-1.1.0.tar.gz
.
File metadata
- Download URL: icebox-1.1.0.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | abca2e044da2c950b22bcbf6d66f3add45e3b87544c58150178e0a330c09e1eb |
|
MD5 | 7637a954aafe5b25bca092355bbab7e6 |
|
BLAKE2b-256 | d0f2eea8c103594a0fb5aa7238f9f43d01c54a29741358853ecdf61534d93cec |
File details
Details for the file icebox-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: icebox-1.1.0-py3-none-any.whl
- Upload date:
- Size: 25.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85fe74e91f1918aeced1dc83b5b46083576a2560a969cc25ebf95135b7ab684d |
|
MD5 | 7fd8803c3680617d2f1a440c9feebea3 |
|
BLAKE2b-256 | 0e28ec7d258088e66f715c41c3cd492476af6bc981ea4669524bab281403e15f |