このページは、2012 年にリリースされた当初のボールトと REST API を使用する、S3 Glacier サービスの既存のお客様を対象としたものです。
アーカイブストレージソリューションをお探しの場合は、Amazon S3 の S3 Glacier ストレージクラス (S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive) を使用することをお勧めします。これらのストレージオプションの詳細については、「Amazon S3 ユーザーガイド」の「S3 Glacier ストレージクラス
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CLIを使用して大きなアーカイブをアップロードする
AWS Command Line Interface () を使用して、Amazon S3 Glacier (S3 Glacier) にアーカイブをアップロードできますAWS CLI。大きなアーカイブのアップロードエクスペリエンスを向上させるために、S3 Glacier にはマルチパートアップロードをサポートするいくつかの API オペレーションが用意されています。これらの API オペレーションを使用すると、アーカイブを分割してアップロードできます。パートは、任意の順序で独立かつ並列にアップロードされます。パートのアップロードが失敗した場合、アーカイブ全体ではなく、失敗したパートのみを再度アップロードするだけで済みます。マルチパートアップロードは、1 バイトから約 40,000 ギビバイト (GiB) までのサイズのアーカイブに対して使用できます。
S3 Glacier マルチパートアップロードの詳細については、「パート単位での大きなアーカイブのアップロード (マルチパートアップロード)」を参照してください。
トピック
(前提条件) のセットアップ AWS CLI
-
AWS CLIをダウンロードして設定します。手順については、「AWS Command Line Interface ユーザーガイド」の次のトピックを参照してください。
-
コマンドプロンプトで次のコマンドを入力して、 AWS CLI セットアップを確認します。これらのコマンドは、いずれも認証情報を明示的に提供しないため、デフォルトプロファイルの認証情報が使用されます。
-
help コマンドを使用してください。
aws help -
設定したアカウントの S3 Glacier ボールトのリストを取得するには、
list-vaultsコマンドを使用します。123456789012「」を AWS アカウント ID に置き換えます。aws glacier list-vaults --account-id123456789012 -
の現在の設定データを表示するには AWS CLI、
aws configure listコマンドを使用します。aws configure list
-
(前提条件) Python のインストール
マルチパートアップロードを完了するには、アップロードするアーカイブの SHA256 木構造ハッシュを計算する必要があります。これは、アップロードするファイルの SHA256 木構造ハッシュを計算することとは異なります。アップロードするアーカイブの SHA256 木構造ハッシュを計算するには、Java、C# (.NET を使用)、または Python を使用できます。この例では、Python を使用します。Java または C# を使用する手順については、「チェックサムの計算」を参照してください。
Python のインストールの詳細については、「Boto3 デベロッパーガイド」の「Python のインストールまたは更新
(前提条件) S3 Glacier ボールトの作成
次の例を使用するには、S3 Glacier ボールを少なくとも 1 つ作成しておく必要があります。ボールトの作成方法の詳細については、「Amazon S3 Glacier でボールトを作成する」を参照してください。
例: を使用してパート単位で大きなアーカイブをアップロードする AWS CLI
この例では、ファイルを作成し、マルチパートアップロード API オペレーションを使用してそのファイルをパート単位で Amazon Glacierにアップロードします。
重要
この手順を開始する前に、前提条件となる手順をすべて実行しておくようにしてください。アーカイブをアップロードするには、ボールトを作成して AWS CLI を設定し、Java、C#、または Python を使用して SHA256 木構造ハッシュを計算できるように準備しておく必要があります。
次の手順ではinitiate-multipart-upload、、upload-multipart-part、および complete-multipart-upload AWS CLI コマンドを使用します。
これらのコマンドそれぞれの詳細については、「AWS CLI コマンドリファレンス」の「initiate-multipart-upload」、「upload-multipart-part」、「complete-multipart-upload」を参照してください。
-
initiate-multipart-upload コマンドを使用して、マルチパートアップロードリソースを作成します。リクエストで、パートサイズをバイト数で指定します。アップロードする各パートは、最後のパートを除き、すべてこのサイズになります。アップロードを開始する際にアーカイブ全体のサイズを把握している必要はありません。ただし、最後の手順でアップロードを完了するときには、各パートの合計サイズ (バイト単位) が必要になります。
次のコマンドで、
--vault-nameパラメータと--account-IDパラメータの値を独自の情報に置き換えます。このコマンドは、ファイルごとに 1 メビバイト (MiB) (1024 x 1024 バイト) のパートサイズのアーカイブをアップロードするよう指定します。必要に応じてこの--part-sizeパラメータ値を置き換えます。aws glacier initiate-multipart-upload --vault-nameawsexamplevault--part-size1048576--account-id123456789012正常な出力:
{ "location": "/123456789012/vaults/awsexamplevault/multipart-uploads/uploadId", "uploadId": "uploadId" }終了すると、コマンドはマルチパートアップロードリソースのアップロード ID と S3 Glacier 内の場所を出力します。後の手順で、このアップロード ID を使用します。
-
この例では、次のコマンドを使用して 4.4 MiB のファイルを作成し、1 MiB のチャンクに分割して、各チャンクをアップロードできます。独自のファイルをアップロードするには、データをチャンクに分割し、各パートをアップロードする、同様の手順に従います。
Linux または macOS
次のコマンドは、Linux または macOS 上に
file_to_uploadという名前の 4.4 MiB ファイルを作成します。mkfile -n 9000bfile_to_uploadWindows
次のコマンドは、Windows 上に
file_to_uploadという名前の 4.4 MiB ファイルを作成します。fsutil file createnewfile_to_upload4608000 -
次に、このファイルを 1 MiB のチャンクに分割します。
split -b 1048576file_to_uploadchunkこれで、次の 5 つのチャンクができます。最初の 4 つは 1 MiB で、最後の 1 つは約 400 キビバイト (KiB) です。
chunkaa chunkab chunkac chunkad chunkae -
upload-multipart-part コマンドを使用して、アーカイブの一部をアップロードします。アーカイブのパートは任意の順序でアップロードできます。パートを並行してアップロードすることもできます。マルチパートアップロードでは、最大 10,000 パートをアップロードできます。
次のコマンドで、
--vault-name、--account-ID、--upload-idのパラメータの値を置き換えます。アップロード ID は、initiate-multipart-uploadコマンドの出力として指定された ID と一致する必要があります。--rangeパラメータは、サイズが 1 MiB (1024 x 1024 バイト) のパートをアップロードするよう指定します。このサイズは、initiate-multipart-uploadコマンドで指定したサイズと一致する必要があります。必要に応じてこのサイズ値を調整します。--bodyパラメーターは、アップロードするパートの名前を指定します。aws glacier upload-multipart-part --bodychunkaa--range='bytes 0-1048575/*'--vault-nameawsexamplevault--account-id123456789012--upload-idupload_ID正常にアップロードできると、コマンドはアップロードされたパートのチェックサムを含む出力を生成します。
-
upload-multipart-partコマンドをもう一度実行して、マルチパートアップロードの残りのパートをアップロードします。アップロードするパートと一致するように、各コマンドの--rangeパラメータと–-bodyパラメータの値を更新します。aws glacier upload-multipart-part --bodychunkab--range='bytes 1048576-2097151/*'--vault-nameawsexamplevault--account-id123456789012--upload-idupload_IDaws glacier upload-multipart-part --bodychunkac--range='bytes 2097152-3145727/*'--vault-nameawsexamplevault--account-id123456789012--upload-idupload_IDaws glacier upload-multipart-part --bodychunkad--range='bytes 3145728-4194303/*'--vault-nameawsexamplevault--account-id123456789012--upload-idupload_IDaws glacier upload-multipart-part --bodychunkae--range='bytes 4194304-4607999/*'--vault-nameawsexamplevault--account-id123456789012--upload-idupload_ID注記
アップロードの最後のパートが 1 MiB 未満なので、最後のコマンドの
--rangeパラメータ値は小さくなります。正常にアップロードできると、それぞれのコマンドはアップロードされた各パートのチェックサムを含む出力を生成します。 -
次に、アーカイブを組み立てて、アップロードを終了します。アーカイブの合計サイズと SHA256 木構造ハッシュを含める必要があります。
アーカイブの SHA256 木構造ハッシュを計算するには、Java、C#、または Python を使用できます。この例では、Python を使用します。Java または C# を使用する手順については、「チェックサムの計算」を参照してください。
Python ファイル
checksum.pyを作成し、次のコードを挿入します。必要に応じて、元のファイルの名前を置き換えます。from botocore.utils import calculate_tree_hash checksum = calculate_tree_hash(open('file_to_upload', 'rb')) print(checksum) -
checksum.pyを実行して SHA256 木構造ハッシュを計算します。次のハッシュは出力と一致しないことがあります。$python3 checksum.py$3d760edb291bfc9d90d35809243de092aea4c47b308290ad12d084f69988ae0c -
complete-multipart-upload コマンドを使用してアーカイブのアップロードを終了します。
--vault-name、--account-ID、--upload-ID、--checksumのパラメータの値を置き換えます。--archiveパラメータ値は、アーカイブの合計サイズをバイト単位で指定します。この値には、アップロードした個々のパートのすべてのサイズの合計値を指定する必要があります。必要に応じてこの値を置き換えます。aws glacier complete-multipart-upload --archive-size4608000--vault-nameawsexamplevault--account-id123456789012--upload-idupload_ID--checksumchecksum終了すると、コマンドはアーカイブの ID、チェックサム、S3 Glacier 内の場所を出力します。