Archived some of my files in Glacier for cold storage, jot down some note which I think useful.
To Download
aws glacier initiate-job --account-id <ACCOUNT_ID> --vault-name <VAULT_NAME> \ --job-parameters '{"Type": "inventory-retrieval"}'
Response as below, “InProgress” indicate it’s currently retrieving your vault information.
{ "JobList": [ { "InventoryRetrievalParameters": { "Format": "JSON" }, "VaultARN": "arn:aws:glacier:us-east-1:<ACCOUNT_ID>:vaults/<VAULT_NAME>", "Completed": false, "JobId": "1IDvzqYMBTlQ22HZGpr3KmOfeyHV2BIAq3LipToKr3MiN86bTtjb4UiHCVV5Pi4q8fxNhl", "Action": "InventoryRetrieval", "CreationDate": "2018-09-29T22:19:34.973Z", "StatusCode": "InProgress" } ] }
OK, tried few hours later and it showed “Succeeded”, go on…
{ "JobList": [ { "CompletionDate": "2018-09-30T02:07:27.572Z", "VaultARN": "arn:aws:glacier:us-east-1:<ACCOUNT_ID>:vaults/<VAULT_NAME>", "InventoryRetrievalParameters": { "Format": "JSON" }, "Completed": true, "InventorySizeInBytes": 4783, "JobId": "1IDvzqYMBTlQ22HZGpr3KmOfeyHV2BIAq3Lip", "Action": "InventoryRetrieval", "CreationDate": "2018-09-29T22:19:34.973Z", "StatusMessage": "Succeeded", "StatusCode": "Succeeded" } ] }
Get archive list with command below which will lead to output written in archive.json.
aws glacier get-job-output --account-id <ACCOUNT_ID> --vault-name <VAULT_NAME> \ --job-id 1IDvzqYMBTlQ22HZGpr3KmOfeyHV2BIAq3Lip archive.json
{ "VaultARN": "arn:aws:glacier:us-east-1:<ACCOUNT_ID>:vaults/<VAULT_NAME>", "InventoryDate": "2018-08-26T21:40:40Z", "ArchiveList": [{ "ArchiveId": "y3QIkLkxRIXLiL1j_lII1yvW13jscAk-wEuifLkoX_SJVCLF6T", "ArchiveDescription": "{\"Path\":\"CBB+20180822T070618Z\"}", "CreationDate": "2018-08-22T07:07:13Z", "Size": 5981, "SHA256TreeHash": "072603eaf03ba5ae4eb10083be3285a3ef577f4c" }, { "ArchiveId": "IevypBp2RazhieImIi6-y3QIkLkxRIXLiL1j_lII1yvW13jscAk", "ArchiveDescription": "{\"Path\":\",\"UTCDateModified\":\"20180822T070623Z\"}", "CreationDate": "2018-08-22T07:07:14Z", "Size": 1663, "SHA256TreeHash": "cede08ebde7ef2fdf36f4610fc4620df56bc64" } ] }
Then create a json file with sample content below indicate which archive to download (I use download.json in this case)
{ "Type": "archive-retrieval", "ArchiveId": "dXVi00Z5j1og1REd-zEN1vmP8VB4delaX_mDdGr5IxA", "Description": "Test retrieval" }
Then execute command below:
aws glacier initiate-job --account-id <ACCOUNT_ID> --vault-name <VAULT_NAME> \ --job-parameters file://download.json
You get response as:
{ "location": "/<ACCOUNT_ID>/vaults/<VAULT_NAME>/jobs/NiejXgaVsBVWXmNAm6A_ZYhJpgxSiZ8v2aKmGFscLMhXmUg1V", "jobId": "NiejXgaVsBVWXmNAm6A_ZYhJpgxSiZ8v2aKmGFscLMhXmUg1V" }
Check the status job status:
aws glacier list-jobs --account-id <ACCOUNT_ID> --vault-name <VAULT_NAME>
{ "JobList": [{ "VaultARN": "arn:aws:glacier:us-east-1:<ACCOUNT_ID>:vaults/<VAULT_NAME>", "RetrievalByteRange": "0-6479072", "Tier": "Standard", "SHA256TreeHash": "a125bef84b6a47bf0e291c6f2f87cfb2b7ffc53955ba88fe164fd3", "Completed": false, "JobId": "Gx9PNiejXgaV7A6yDre1UZVq4WgBlN3wRuzAm6A_ZYhJpgxSiZ8v2aKmGFscLMhXmUg1V", "ArchiveId": "dXVi00Z5MI-P-ItzAo06hc9yE8Ca9nGSzyU5gIj1og1REd-zEN1vmP8VB4delaX_mDdGr5IxA", "JobDescription": "Test retrieval", "ArchiveSizeInBytes": 6479073, "Action": "ArchiveRetrieval", "ArchiveSHA256TreeHash": "a125bef84b6a47bf0e291c6f2f87cfb2b7ffc53955ba88fe164fd3", "CreationDate": "2018-09-30T12:06:03.400Z", "StatusCode": "InProgress" } ] }
Come back few hours/minutes, check the status and it’s now turn to “Succeeded”
{ "JobList": [ { "CompletionDate": "2018-09-30T15:51:05.858Z", "VaultARN": "arn:aws:glacier:us-east-1:<ACCOUNT_ID>:vaults/<VAULT_NAME>", "RetrievalByteRange": "0-6479072", "Tier": "Standard", "SHA256TreeHash": "a125bef84b6a47bf0e291c6f2f87cfb2b7ffc53955ba88fe164fd3", "Completed": true, "JobId": "Gx9PNiejXgaV7A6yDre1UZVq4WgBlN3wRuzAm6A_ZYhJpgxSiZ8v2aKmGFscLMhXmUg1V", "ArchiveId": "dXVi00Z5MI-P-ItzAo06hc9yE8Ca9nGSzyU5gIj1og1REd-zEN1vmP8VB4delaX_mDdGr5IxA", "JobDescription": "Test retrieval", "ArchiveSizeInBytes": 6479073, "Action": "ArchiveRetrieval", "ArchiveSHA256TreeHash": "a125bef84b6a47bf0e291c6f2f87cfb2b7ffc53955ba88fe164fd3", "CreationDate": "2018-09-30T12:06:03.400Z", "StatusMessage": "Succeeded", "StatusCode": "Succeeded" } ] }
Finally you can download your file with command below:
aws glacier get-job-output \ --account-id <ACCOUNT_ID> \ --vault-name <VAULT_NAME> \ --job-id "Gx9PNiejXgaV7A6yDre1UZVq4WgBlN3wRuzAm6A_ZYhJpgxSiZ8v2aKmGFscLMhXmUg1V" \ movie.zip
To Upload
aws glacier upload-archive --account-id - --vault-name <VAULT_NAME> --archive-description "YOUR_NOTE" --body <FILE_NAME>
To Delete
aws glacier delete-archive --account-id <ACCOUNT_ID> --vault-name <VAULT_NAME> --archive-id "<ARCHIVE_ID>"
Credit to: softwaredevelopmentstuff.com & madboa.com