Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions,
see Getting Started with Amazon Web Services in China
(PDF).
This page is only for existing customers of the Amazon Glacier service using Vaults and the original REST API from 2012.
If you're looking for archival storage solutions, we recommend using the Amazon Glacier storage classes in Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, and S3 Glacier Deep Archive. To learn more about these storage options, see Amazon Glacier storage classes.
Amazon Glacier (original standalone vault-based service) will no longer accept new customers starting December 15, 2025, with no impact to existing customers. Amazon Glacier is a standalone service with its own APIs that stores data in vaults and is distinct from Amazon S3 and the Amazon S3 Glacier storage classes. Your existing data will remain secure and accessible in Amazon Glacier indefinitely. No migration is required. For low-cost, long-term archival storage, Amazon recommends the Amazon S3 Glacier storage classes, which deliver a superior customer experience with S3 bucket-based APIs, full Amazon Web Services Region availability, lower costs, and Amazon service integration. If you want enhanced capabilities, consider migrating to Amazon S3 Glacier storage classes by using our Amazon Solutions Guidance for transferring data from Amazon Glacier vaults to Amazon S3 Glacier storage classes.
Use CreateVault
with an Amazon SDK or CLI
The following code examples show how to use CreateVault
.
Action examples are code excerpts from larger programs and must be run in context. You can see this action in
context in the following code example:
- .NET
-
- Amazon SDK for .NET
-
/// <summary>
/// Create an Amazon S3 Glacier vault.
/// </summary>
/// <param name="vaultName">The name of the vault to create.</param>
/// <returns>A Boolean value indicating the success of the action.</returns>
public async Task<bool> CreateVaultAsync(string vaultName)
{
var request = new CreateVaultRequest
{
// Setting the AccountId to "-" means that
// the account associated with the current
// account will be used.
AccountId = "-",
VaultName = vaultName,
};
var response = await _glacierService.CreateVaultAsync(request);
Console.WriteLine($"Created {vaultName} at: {response.Location}");
return response.HttpStatusCode == HttpStatusCode.Created;
}
- CLI
-
- Amazon CLI
-
The following command creates a new vault named my-vault
:
aws glacier create-vault --vault-name my-vault
-
-account-id -
Amazon Glacier requires an account ID argument when performing operations, but you can use a hyphen to specify the in-use account.
- Java
-
- SDK for Java 2.x
-
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.glacier.GlacierClient;
import software.amazon.awssdk.services.glacier.model.CreateVaultRequest;
import software.amazon.awssdk.services.glacier.model.CreateVaultResponse;
import software.amazon.awssdk.services.glacier.model.GlacierException;
/**
* Before running this Java V2 code example, set up your development
* environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
public class CreateVault {
public static void main(String[] args) {
final String usage = """
Usage: <vaultName>
Where:
vaultName - The name of the vault to create.
""";
if (args.length != 1) {
System.out.println(usage);
System.exit(1);
}
String vaultName = args[0];
GlacierClient glacier = GlacierClient.builder()
.region(Region.US_EAST_1)
.build();
createGlacierVault(glacier, vaultName);
glacier.close();
}
public static void createGlacierVault(GlacierClient glacier, String vaultName) {
try {
CreateVaultRequest vaultRequest = CreateVaultRequest.builder()
.vaultName(vaultName)
.build();
CreateVaultResponse createVaultResult = glacier.createVault(vaultRequest);
System.out.println("The URI of the new vault is " + createVaultResult.location());
} catch (GlacierException e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
}
}
- JavaScript
-
- SDK for JavaScript (v3)
-
Create the client.
const { GlacierClient } = require("@aws-sdk/client-glacier");
// Set the AWS Region.
const REGION = "REGION";
//Set the Redshift Service Object
const glacierClient = new GlacierClient({ region: REGION });
export { glacierClient };
Create the vault.
// Load the SDK for JavaScript
import { CreateVaultCommand } from "@aws-sdk/client-glacier";
import { glacierClient } from "./libs/glacierClient.js";
// Set the parameters
const vaultname = "VAULT_NAME"; // VAULT_NAME
const params = { vaultName: vaultname };
const run = async () => {
try {
const data = await glacierClient.send(new CreateVaultCommand(params));
console.log("Success, vault created!");
return data; // For unit tests.
} catch (err) {
console.log("Error");
}
};
run();
- SDK for JavaScript (v2)
-
// Load the SDK for JavaScript
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });
// Create a new service object
var glacier = new AWS.Glacier({ apiVersion: "2012-06-01" });
// Call Glacier to create the vault
glacier.createVault({ vaultName: "YOUR_VAULT_NAME" }, function (err) {
if (!err) {
console.log("Created vault!");
}
});
- PowerShell
-
- Tools for PowerShell V4
-
Example 1: Creates a new vault for the user's account. As no value was supplied to the -AccountId parameter the cmdlets uses a default of "-" indicating the current account.
New-GLCVault -VaultName myvault
Output:
/01234567812/vaults/myvault
- Tools for PowerShell V5
-
Example 1: Creates a new vault for the user's account. As no value was supplied to the -AccountId parameter the cmdlets uses a default of "-" indicating the current account.
New-GLCVault -VaultName myvault
Output:
/01234567812/vaults/myvault
- Python
-
- SDK for Python (Boto3)
-
class GlacierWrapper:
"""Encapsulates Amazon S3 Glacier API operations."""
def __init__(self, glacier_resource):
"""
:param glacier_resource: A Boto3 Amazon S3 Glacier resource.
"""
self.glacier_resource = glacier_resource
def create_vault(self, vault_name):
"""
Creates a vault.
:param vault_name: The name to give the vault.
:return: The newly created vault.
"""
try:
vault = self.glacier_resource.create_vault(vaultName=vault_name)
logger.info("Created vault %s.", vault_name)
except ClientError:
logger.exception("Couldn't create vault %s.", vault_name)
raise
else:
return vault
For a complete list of Amazon SDK developer guides and code examples, see
Using Amazon Glacier with an Amazon SDK.
This topic also includes information about getting started and details about previous SDK versions.