App-MtAws
view release on metacpan or search on metacpan
* [File selection options](#file-selection-options)
* [Additional command line options](#additional-command-line-options)
* [Configuring Character Encodings](#configuring-character-encodings)
* [Limitations](#limitations)
* [See also](#see-also)
* [Minimum Amazon Glacier permissions](#minimum-amazon-glacier-permissions)
## Features
* Does not use any existing Amazon Glacier library, so can be flexible in implementing advanced features
* Amazon Glacier Multipart upload
* Multi-segment download (using HTTP Range header)
* Multithreaded upload/download
* Multipart+Multithreaded download/upload
* Multithreaded archive retrieval, deletion and download
* TreeHash validation while downloading
* Tracking of all uploaded files with a local journal file (opened for write in append mode only)
* Checking integrity of local files using journal
* Ability to limit number of archives to retrieve
* File selection options for all commands (using flexible rules with wildcard support)
* Full synchronization to Amazon Glacier - new file uploaded, modified files can be replaced, deletions can be propogated
* File name and modification times are stored as Glacier metadata ([metadata format for developers][mt-aws-glacier Amazon Glacier meta-data format specification])
* Ability to re-create journal file from Amazon Glacier metadata
* Full UTF-8 support (and full single-byte encoding support for *BSD systems)
* Multipart/multithreaded upload from STDIN
* User selectable HTTPS support. Currently defaults to plaintext HTTP
* Vault creation and deletion
* STS/IAM security tokens support
[mt-aws-glacier Amazon Glacier meta-data format specification]:https://github.com/vsespb/mt-aws-glacier/blob/master/lib/App/MtAws/MetaData.pm
## Important bugs/missing features
* Only multipart upload implemented, no plain upload
* Mac OS X filesystem treated as case-sensitive
## Production readiness
* After **one year** since first public version released, beta testing was finished and version 1.xxx released. Current project status is **non-beta**, **stable**.
## Installation/System requirements
Script is made for Unix OS. Tested under Linux. Should work under other POSIX OSes (*BSD, Solaris). Lightly tested under Mac OS X.
Will NOT work under Windows/Cygwin. Minimum Perl version required is 5.8.8 (pretty old, AFAIK there are no supported distributions with older Perls)
### Installation via OS package manager
NOTE: If you've used manual installation before, please remove previously installed `mtglacier` executable from your path.
NOTE: If you've used CPAN installation before, please remove previously installed module, ([cpanm] is capable to do that)
##### Ubuntu 12.04+
Can be installed/updated via PPA [vsespb/mt-aws-glacier](https://launchpad.net/~vsespb/+archive/mt-aws-glacier):
1. `sudo apt-get update`
2. `sudo apt-get install software-properties-common python-software-properties`
3. `sudo add-apt-repository ppa:vsespb/mt-aws-glacier`
(GPG key id/fingerprint would be **D2BFA5E4** and **D7F1BC2238569FC447A8D8249E86E8B2D2BFA5E4**)
4. `sudo apt-get update`
5. `sudo apt-get install libapp-mtaws-perl`
##### Debian 6 (Squeeze)
Can be installed/updated via custom repository
1. `wget -O - http://mt-aws.com/vsespb.gpg.key | sudo apt-key add -`
(this will add GPG key 2C00 B003 A56C 5F2A 75C4 4BF8 2A6E 0307 **D0FF 5699**)
2. Add repository
echo "deb http://dl.mt-aws.com/debian/current squeeze main"|sudo tee /etc/apt/sources.list.d/mt-aws.list
3. `sudo apt-get update`
4. `sudo apt-get install libapp-mtaws-perl`
(To use HTTPS you also need:)
5. `sudo apt-get install build-essential libssl-dev`
6. install/update `LWP::UserAgent` and `LWP::Protocol::https` using [cpanm]
##### Debian 7 (Wheezy), including rasbian for Raspberry Pi
Can be installed/updated via custom repository
1. `wget -O - https://mt-aws.com/vsespb.gpg.key | sudo apt-key add -`
(this will add GPG key 2C00 B003 A56C 5F2A 75C4 4BF8 2A6E 0307 **D0FF 5699**)
2. Add repository
echo "deb http://dl.mt-aws.com/debian/current wheezy main"|sudo tee /etc/apt/sources.list.d/mt-aws.list
3. `sudo apt-get update`
4. `sudo apt-get install libapp-mtaws-perl`
##### Debian 8 (Jessie)
Can be installed/updated via custom repository
1. `wget -O - https://mt-aws.com/vsespb.gpg.key | sudo apt-key add -`
(this will add GPG key 2C00 B003 A56C 5F2A 75C4 4BF8 2A6E 0307 **D0FF 5699**)
2. Add repository
echo "deb http://dl.mt-aws.com/debian/current jessie main"|sudo tee /etc/apt/sources.list.d/mt-aws.list
3. `sudo apt-get update`
4. `sudo apt-get install libapp-mtaws-perl`
### Manual installation
#### Install prerequisites
###### Ubuntu 12.04+, Debian 7
`sudo apt-get install libwww-perl libjson-xs-perl`
###### RHEL/CentOS 5
1. `sudo yum install perl-Digest-SHA`
2. `sudo yum groupinstall "Development Tools"`
3. `sudo yum install openssl-devel`
4. Install `JSON::XS`, `LWP::UserAgent` and `LWP::Protocol::https` using [cpanm]
You also can install `mtglacier` prerequisites without CPAN if you have [EPEL](http://fedoraproject.org/wiki/EPEL) repository enabled and if you don't need HTTPS:
`sudo yum install perl-Digest-SHA perl-JSON-XS perl-libwww-perl`
###### RHEL/CentOS 6
1. `sudo yum install perl-core perl-CGI`
2. `sudo yum groupinstall "Development Tools"`
3. `sudo yum install openssl-devel`
4. Install `JSON::XS`, `LWP::UserAgent` and `LWP::Protocol::https` using [cpanm]
You also can install `mtglacier` prerequisites without CPAN if you have [EPEL](http://fedoraproject.org/wiki/EPEL) repository enabled and if you don't need HTTPS:
`sudo yum install perl-core perl-CGI perl-JSON-XS perl-libwww-perl`
###### Debian 6
`sudo apt-get install libwww-perl libjson-xs-perl`
To use HTTPS you also need:
1. `sudo apt-get install build-essential libssl-dev`
3. install/update `LWP::UserAgent` and `LWP::Protocol::https` using [cpanm]
###### Fedora 18+
`sudo yum install perl-core perl-CGI perl-JSON-XS perl-libwww-perl perl-LWP-Protocol-https`
###### SUSE Linux Enterprise Server 11
( run in 1.465 second using v1.01-cache-2.11-cpan-5837b0d9d2c )