Skip to content

Amazon Glacier

CloudMock emulates Amazon S3 Glacier, supporting vault management, archive upload/deletion, job initiation and retrieval, vault lock (two-step InProgress → Locked), and tagging. Job lifecycle transitions from InProgress → Succeeded.

OperationStatusNotes
CreateVaultSupportedCreates a new vault
DescribeVaultSupportedReturns vault details and inventory info
ListVaultsSupportedLists all vaults
DeleteVaultSupportedFails if vault is non-empty
UploadArchiveSupportedStores archive, returns ID in x-amz-archive-id header
DeleteArchiveSupportedDeletes archive by ID
InitiateJobSupportedarchive-retrieval or inventory-retrieval
DescribeJobSupportedReturns job status and details
ListJobsSupportedLists jobs for a vault
GetJobOutputSupportedReturns mock output for completed jobs
InitiateVaultLockSupportedCreates InProgress lock, returns lockId in header
CompleteVaultLockSupportedTransitions lock to Locked state
AbortVaultLockSupportedCancels InProgress vault lock
GetVaultLockSupportedReturns lock policy and state
AddTagsToVaultSupportedAdds tags (POST /-/vaults/{name}/tags)
RemoveTagsFromVaultSupportedRemoves tags by key
ListTagsForVaultSupportedLists vault tags

Glacier uses REST path-based routing, not JSON action names:

MethodPathOperation
PUT/-/vaults/{name}CreateVault
GET/-/vaults/{name}DescribeVault
DELETE/-/vaults/{name}DeleteVault
GET/-/vaultsListVaults
POST/-/vaults/{name}/archivesUploadArchive
DELETE/-/vaults/{name}/archives/{id}DeleteArchive
POST/-/vaults/{name}/jobsInitiateJob
GET/-/vaults/{name}/jobs/{id}DescribeJob
GET/-/vaults/{name}/jobs/{id}/outputGetJobOutput
POST/-/vaults/{name}/lock-policyInitiateVaultLock
POST/-/vaults/{name}/lock-policy/{id}CompleteVaultLock
DELETE/-/vaults/{name}/lock-policyAbortVaultLock
GET/-/vaults/{name}/lock-policyGetVaultLock
GET/-/vaults/{name}/tagsListTagsForVault
POST/-/vaults/{name}/tagsAddTagsToVault
import boto3
client = boto3.client('glacier',
endpoint_url='http://localhost:4566',
region_name='us-east-1',
aws_access_key_id='test',
aws_secret_access_key='test')
client.create_vault(vaultName='my-archives')
# Upload archive
with open('backup.tar.gz', 'rb') as f:
response = client.upload_archive(
vaultName='my-archives',
body=f,
archiveDescription='Monthly backup',
)
archive_id = response['archiveId']
# Initiate inventory job
job = client.initiate_job(
vaultName='my-archives',
jobParameters={'Type': 'inventory-retrieval'},
)
print(job['jobId'])
services:
glacier:
enabled: true
  • Archives are stored in memory (not persisted)
  • Job output is mock data, not real archive bytes
  • Inventory dates and archive counts are simulated