Cette page est réservée aux clients existants du service S3 Glacier utilisant Vaults et l'original REST API de 2012.
Si vous recherchez des solutions de stockage d'archives, nous vous conseillons d'utiliser les classes de stockage S3 Glacier dans Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval et S3 Glacier Deep Archive. Pour en savoir plus sur ces options de stockage, consultez les sections Classes de stockage S3 Glacier et Stockage de données à long terme à l'aide des classes de stockage S3 Glacier dans le guide de l'utilisateur Amazon S3. Ces classes de stockage utilisent Amazon S3API, sont disponibles dans toutes les régions et peuvent être gérées au sein de la console Amazon S3. Ils offrent des fonctionnalités telles que l'analyse des coûts de stockage, Storage Lens, des fonctionnalités de chiffrement optionnelles avancées, etc.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
À utiliser UploadMultipartPart
avec un AWS SDK ou CLI
Les exemples de code suivants montrent comment utiliserUploadMultipartPart
.
- CLI
-
- AWS CLI
-
La commande suivante télécharge le premier Mio (1 024 x 1 024 octets) d’une archive :
aws glacier upload-multipart-part --body part1
--range 'bytes 0-1048575/*
' -
-account-id - --vault-name my-vault
--upload-id 19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ
Amazon Glacier nécessite un argument d’ID de compte pour effectuer des opérations, mais vous pouvez utiliser un trait d’union pour spécifier le compte en cours d’utilisation.
Le paramètre corps indique le chemin d’un fichier partiel sur le système de fichiers local. Le paramètre range prend une plage de HTTP contenu indiquant les octets que la partie occupe dans l'archive terminée. L’ID de téléchargement est renvoyé par la commande aws glacier initiate-multipart-upload
et peut également être obtenu avec aws glacier list-multipart-uploads
.
Pour plus d'informations sur les téléchargements partitionnés vers Amazon Glacier à l'aide du AWS CLI, consultez la section Utilisation d'Amazon Glacier dans le guide de l'AWS CLIutilisateur.
- JavaScript
-
- SDKpour JavaScript (v2)
-
Créez un chargement partitionné de blocs d'un mégaoctet d'un objet Buffer.
// Create a new service object and some supporting variables
var glacier = new AWS.Glacier({ apiVersion: "2012-06-01" }),
vaultName = "YOUR_VAULT_NAME",
buffer = new Buffer(2.5 * 1024 * 1024), // 2.5MB buffer
partSize = 1024 * 1024, // 1MB chunks,
numPartsLeft = Math.ceil(buffer.length / partSize),
startTime = new Date(),
params = { vaultName: vaultName, partSize: partSize.toString() };
// Compute the complete SHA-256 tree hash so we can pass it
// to completeMultipartUpload request at the end
var treeHash = glacier.computeChecksums(buffer).treeHash;
// Initiate the multipart upload
console.log("Initiating upload to", vaultName);
// Call Glacier to initiate the upload.
glacier.initiateMultipartUpload(params, function (mpErr, multipart) {
if (mpErr) {
console.log("Error!", mpErr.stack);
return;
}
console.log("Got upload ID", multipart.uploadId);
// Grab each partSize chunk and upload it as a part
for (var i = 0; i < buffer.length; i += partSize) {
var end = Math.min(i + partSize, buffer.length),
partParams = {
vaultName: vaultName,
uploadId: multipart.uploadId,
range: "bytes " + i + "-" + (end - 1) + "/*",
body: buffer.slice(i, end),
};
// Send a single part
console.log("Uploading part", i, "=", partParams.range);
glacier.uploadMultipartPart(partParams, function (multiErr, mData) {
if (multiErr) return;
console.log("Completed part", this.request.params.range);
if (--numPartsLeft > 0) return; // complete only when all parts uploaded
var doneParams = {
vaultName: vaultName,
uploadId: multipart.uploadId,
archiveSize: buffer.length.toString(),
checksum: treeHash, // the computed tree hash
};
console.log("Completing upload...");
glacier.completeMultipartUpload(doneParams, function (err, data) {
if (err) {
console.log("An error occurred while uploading the archive");
console.log(err);
} else {
var delta = (new Date() - startTime) / 1000;
console.log("Completed upload in", delta, "seconds");
console.log("Archive ID:", data.archiveId);
console.log("Checksum: ", data.checksum);
}
});
});
}
});
Pour obtenir la liste complète des guides AWS SDK de développement et des exemples de code, consultezUtilisation de S3 Glacier avec un AWS SDK. Cette rubrique inclut également des informations sur la mise en route et des détails sur SDK les versions précédentes.