Weitere AWS-SDK-Beispiele sind im GitHub-Repository Beispiele für AWS Doc SDKs
Verwendung von UploadMultipartPart mit einem AWS-SDK oder CLI
Die folgenden Code-Beispiele zeigen, wie UploadMultipartPart verwendet wird.
- CLI
-
- AWS CLI
-
Der folgende Befehl lädt den ersten, 1 MiB (1024 x 1024 Byte) umfassenden Teil eines Archivs hoch:
aws glacier upload-multipart-part --bodypart1--range 'bytes 0-1048575/*'--account-id - --vault-namemy-vault--upload-id19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJAmazon Glacier benötigt bei der Durchführung von Operationen ein Konto-ID-Argument, Sie können jedoch einen Bindestrich verwenden, um das verwendete Konto anzugeben.
Der Parameter „body“ nimmt einen Pfad zu einer Teildatei im lokalen Dateisystem an. Der Parameter „range“ nimmt einen HTTP-Inhaltsbereich an, der die Byte angibt, die der Teil im fertigen Archiv belegt. Die Upload-ID wird vom Befehl
aws glacier initiate-multipart-uploadzurückgegeben und kann auch mithilfe vonaws glacier list-multipart-uploadsabgerufen werden.Weitere Informationen zu mehrteiligen Uploads auf Amazon Glacier unter Verwendung der AWS-CLI finden Sie unter „Verwenden von Amazon Glacier“ im AWS-CLI-Benutzerhandbuch.
-
Weitere API-Informationen finden Sie unter UploadMultipartPart
in der AWS CLI-Befehlsreferenz.
-
- JavaScript
-
- SDK für JavaScript (v2)
-
Anmerkung
Auf GitHub finden Sie noch mehr. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS-Code-Beispiel-
einrichten und ausführen. Erstellen eines mehrteiligen Uploads mit 1-Megabyte-Blöcken eines Buffer-Objekts.
// 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); } }); }); } });-
Weitere Informationen finden Sie im AWS SDK für JavaScript-Entwicklerhandbuch.
-
Weitere API-Informationen finden Sie unter UploadMultipartPart in der AWS SDK für JavaScript-API-Referenz.
-