Hay más ejemplos de AWS SDK disponibles en el repositorio de GitHub de ejemplos de AWS SDK de documentos
Uso de UploadMultipartPart con un SDK de AWS o la CLI
Los siguientes ejemplos de código muestran cómo utilizar UploadMultipartPart.
- CLI
-
- AWS CLI
-
El siguiente comando carga la primera parte de 1 MiB (1024 x 1024 bytes) de un archivo:
aws glacier upload-multipart-part --bodypart1--range 'bytes 0-1048575/*'--account-id - --vault-namemy-vault--upload-id19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJAmazon Glacier requiere un argumento de ID de cuenta al realizar operaciones, pero puede usar un guion para especificar la cuenta en uso.
El parámetro body toma una ruta a un archivo de parte del sistema de archivos local. El parámetro range toma un rango de contenido HTTP que indica los bytes que ocupa la parte en el archivo completado. El comando
aws glacier initiate-multipart-uploaddevuelve el ID de carga y también se puede obtener medianteaws glacier list-multipart-uploads.Para obtener más información sobre las cargas de varias partes a Amazon Glacier mediante la CLI de AWS, consulte Uso de Amazon Glacier en la Guía del usuario de la CLI de AWS.
-
Para obtener información sobre la API, consulte UploadMultipartPart
en Referencia de comandos de la AWS CLI.
-
- JavaScript
-
- SDK para JavaScript (v2)
-
nota
Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. Cree una carga multiparte de fragmentos de 1 megabyte de un objeto de búfer.
// 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); } }); }); } });-
Para obtener información, consulte la Guía para desarrolladores de AWS SDK para JavaScript.
-
Para obtener detalles sobre la API, consulte UploadMultipartPart en Referencia de la API de AWS SDK para JavaScript.
-