AWS SDK または CLI UploadMultipartPartで を使用する - Amazon S3 Glacier

このページは、Vaults と 2012 年以降の元の REST API を使用する S3 Glacier サービスの既存のお客様のみを対象としています。

アーカイブストレージソリューションをお探しの場合は、Amazon S3、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive の S3 Glacier ストレージクラスを使用することをお勧めします。これらのストレージオプションの詳細については、「Amazon S3 ユーザーガイド」の「S3 Glacier ストレージクラス」およびS3 Glacier ストレージクラスを使用した長期データストレージ」を参照してください。 Amazon S3 これらのストレージクラスは Amazon S3 API を使用し、すべてのリージョンで利用でき、Amazon S3 コンソール内で管理できます。Storage Cost Analysis、Storage Lens、複数の暗号化オプションを含むセキュリティ機能などを提供します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS SDK または CLI UploadMultipartPartで を使用する

以下のコード例は、UploadMultipartPart の使用方法を示しています。

CLI
AWS CLI

次のコマンドは、アーカイブの最初の 1 MiB (1024 x 1024 バイト) の部分をアップロードします。

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 では、オペレーションを実行する際にアカウント ID 引数が必要ですが、ハイフンを使用して使用中のアカウントを指定できます。

body パラメータは、ローカルファイルシステム上のパートファイルへのパスを受け取ります。range パラメータは、完了したアーカイブ内でそのパートが占めるバイト数を示す HTTP コンテンツ範囲を受け取ります。アップロード ID は aws glacier initiate-multipart-upload コマンドによって返され、aws glacier list-multipart-uploads を使用して取得することもできます。

AWS CLI を使用した Amazon Glacier へのマルチパートアップロードの詳細については、「 CLI AWS ユーザーガイド」のAmazon Glacier の使用」を参照してください。

  • API の詳細については、「 コマンドリファレンスUploadMultipartPart」の「」を参照してください。 AWS CLI

JavaScript
SDK for JavaScript (v2)
注記

については、「」を参照してください GitHub。AWS コード例リポジトリ で全く同じ例を見つけて、設定と実行の方法を確認してください。

Buffer オブジェクトの 1 メガバイトのチャンクのマルチパートアップロードを作成します。

// 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); } }); }); } });

AWS SDK デベロッパーガイドとコード例の完全なリストについては、「」を参照してくださいAWS SDK での S3 Glacier の使用。このトピックには、使用開始方法に関する情報と、以前の SDK バージョンの詳細も含まれています。