Hochladen von großen Archiven mithilfe der AWS CLI - Amazon S3 Glacier

Diese Seite richtet sich nur an Bestandskunden des S3 Glacier-Dienstes, die Vaults und das Original REST API von 2012 verwenden.

Wenn Sie nach Archivspeicherlösungen suchen, empfehlen wir die Verwendung der S3 Glacier-Speicherklassen in Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval und S3 Glacier Deep Archive. Weitere Informationen zu diesen Speicheroptionen finden Sie unter S3 Glacier-Speicherklassen und Langfristige Datenspeicherung mit S3 Glacier-Speicherklassen im Amazon S3 S3-Benutzerhandbuch. Diese Speicherklassen verwenden Amazon S3API, sind in allen Regionen verfügbar und können in der Amazon S3 S3-Konsole verwaltet werden. Sie bieten Funktionen wie Speicherkostenanalyse, Storage Lens, erweiterte optionale Verschlüsselungsfunktionen und mehr.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Hochladen von großen Archiven mithilfe der AWS CLI

Sie können ein Archiv in Amazon S3 Glacier (S3 Glacier) hochladen, indem Sie AWS Command Line Interface (AWS CLI) verwenden. Um das Upload-Erlebnis für größere Archive zu verbessern, bietet S3 Glacier mehrere API Operationen zur Unterstützung mehrteiliger Uploads. Mithilfe dieser API Operationen können Sie Archive in Teilen hochladen. Diese Teile können unabhängig voneinander in beliebiger Reihenfolge und parallel hochgeladen werden. Wenn der Upload eines Teils fehlschlägt, müssen Sie nur diesen Teil und nicht das gesamte Archiv erneut hochladen. Sie können mehrteilige Uploads für Archive mit einer Größe von 1 Byte bis zu ca. 40 000 Gibibytes (GiB) verwenden.

Weitere Informationen über mehrteilige Uploads in S3 Glacier finden Sie unter Hochladen von großen Archiven in Teilen (Multipart Upload).

(Voraussetzung) Einrichtung des AWS CLI

  1. Herunterladen und Konfigurieren von AWS CLI. Eine Anleitung finden Sie unter den folgenden Themen im AWS Command Line Interface -Benutzerhandbuch:

    Installation des AWS Command Line Interface

    Konfiguration des AWS Command Line Interface

  2. Überprüfen Sie Ihr AWS CLI Setup, indem Sie die folgenden Befehle an der Eingabeaufforderung eingeben. Diese Befehle stellen nicht explizit Anmeldeinformationen bereit, daher werden die Anmeldeinformationen des Standardprofils verwendet.

    • Versuchen Sie, den Befehl help zu verwenden.

      aws help
    • Verwenden Sie den list-vaults-Befehl, um eine Liste der S3-Glacier-Tresore für das konfigurierte Konto abzurufen. Ersetzen 123456789012 mit deiner AWS-Konto ID.

      aws glacier list-vaults --account-id 123456789012
    • Um die aktuellen Konfigurationsdaten für zu sehen AWS CLI, verwenden Sie den aws configure list Befehl.

      aws configure list

(Voraussetzung) Installieren von Python

Um einen mehrteiligen Upload abzuschließen, müssen Sie den SHA256 Tree-Hash des Archivs berechnen, das Sie hochladen. Dies unterscheidet sich von der Berechnung des SHA256 Baumhashs der Datei, die Sie hochladen möchten. Um den SHA256 Baumhash des Archivs zu berechnen, das Sie hochladen, können Sie C# (Javawith) verwenden. NET), oder. Python In diesem Beispiel verwenden Sie Python. Anweisungen zur Verwendung von Java oder C# finden Sie unter Berechnen von Prüfsummen.

Informationen über das Installieren von Python finden Sie unter Installieren von Python im Boto3-Benutzerhandbuch.

(Voraussetzung) Erstellen eines S3-Glacier-Tresors

Für die Verwendung des folgenden Beispiels muss mindestens ein S3-Glacier-Tresor erstellt worden sein. Weitere Informationen zum Erstellen von Tresoren finden Sie unter Erstellen eines Tresors in Amazon S3 Glacier.

Beispiel: Teilweises Hochladen großer Archive mithilfe der AWS CLI

In diesem Beispiel erstellen Sie eine Datei und verwenden mehrteilige API Upload-Operationen, um diese Datei teilweise hochzuladen. Amazon S3 Glacier

Wichtig

Bevor Sie mit diesem Verfahren beginnen, stellen Sie sicher, dass alle Voraussetzungen erfüllt sind. Um ein Archiv hochzuladen, müssen Sie einen Tresor erstellt und AWS CLI konfiguriert haben und bereit seinJava, C# zu verwenden oder einen Python SHA256 Tree-Hash zu berechnen.

Das folgende Verfahren verwendet die complete-multipart-upload AWS CLI Befehle initiate-multipart-uploadupload-multipart-part, und.

Ausführliche Informationen zu diesen Befehlen finden Sie unter initiate-multipart-upload, upload-multipart-part und complete-multipart-upload in der AWS CLI -Befehlsreferenz.

  1. Verwenden Sie den initiate-multipart-upload-Befehl, um eine Ressource für den mehrteiligen Upload zu erstellen. Geben Sie in der Anforderung die Größe der einzelnen Teile in Bytes an. Mit Ausnahme des letzten Teils muss jeder der hochzuladenden Teile diese Größe aufweisen. Sie müssen beim Initiieren eines mehrteiligen Uploads die Gesamtgröße des Archivs nicht kennen. Sie benötigen jedoch die Gesamtgröße jedes Teils in Byte, wenn Sie den Upload im letzten Schritt abschließen.

    Ersetzen Sie im folgenden Befehl die Werte für die Parameter --vault-name und --account-ID durch Ihre eigenen Informationen. Dieser Befehl gibt an, dass Sie ein Archiv mit einer Teilegröße von 1 Mebibyte (MiB) (1 024 x 1 024 Byte) pro Datei hochladen. Ersetzen Sie diesen --part-size-Parameterwert bei Bedarf.

    aws glacier initiate-multipart-upload --vault-name awsexamplevault --part-size 1048576 --account-id 123456789012

    Erwartete Ausgabe:

    { "location": "/123456789012/vaults/awsexamplevault/multipart-uploads/uploadId", "uploadId": "uploadId" }

    Nach Abschluss gibt der Befehl die Upload-ID und den Speicherort der Ressource für den mehrteiligen Upload in S3 Glacier aus. Sie verwenden diese Upload-ID in den nachfolgenden Schritten.

  2. In diesem Beispiel können Sie die folgenden Befehle verwenden, um eine Datei mit 4,4 MiB zu erstellen, sie in Blöcke von 1 MiB aufzuteilen und die einzelnen Blöcke hochzuladen. Um Ihre eigenen Dateien hochzuladen, können Sie die Daten mit diesem Verfahren in Blöcke aufteilen und die einzelnen Teile hochladen.

    Linux oder macOS

    Der folgende Befehl erstellt eine 4,4 MiB große Datei mit dem Namen file_to_upload unter Linux oder macOS.

    mkfile -n 9000b file_to_upload
    Windows

    Der folgende Befehl erstellt eine 4,4 MiB große Datei mit dem Namen file_to_upload unter Windows.

    fsutil file createnew file_to_upload 4608000
  3. Als Nächstes teilen Sie diese Datei in Blöcke von 1 MiB auf.

    split -b 1048576 file_to_upload chunk

    Sie haben nun die folgenden fünf Blöcke. Die ersten vier sind 1 MiB groß, der letzte ist ungefähr 400 Kibibyte (KiB) groß.

    chunkaa chunkab chunkac chunkad chunkae
  4. Verwenden Sie den upload-multipart-part-Befehl, um einen Teil eines Archivs hochzuladen. Sie können die Archivteile in beliebiger Reihenfolge hochladen. Sie können die Teile auch parallel hochladen. Sie können bis zu 10 000 Teile für einen mehrteiligen Upload hochladen.

    Ersetzen Sie im folgenden Befehl die Werte für die Parameter --vault-name, --account-ID und --upload-id. Die Upload-ID muss mit der ID übereinstimmen, die in der Ausgabe des initiate-multipart-upload-Befehls angegeben wurde. Der --range-Parameter gibt an, dass Sie einen Teil mit einer Größe von 1 MiB (1 024 x 1 024 Byte) hochladen. Diese Größe muss mit der Größe übereinstimmen, die Sie im initiate-multipart-upload-Befehl angegeben haben. Passen Sie diesen Größenwert bei Bedarf an. Der --body-Parameter gibt den Namen des Teils an, den Sie hochladen.

    aws glacier upload-multipart-part --body chunkaa --range='bytes 0-1048575/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID

    Bei erfolgreicher Ausführung erzeugt der Befehl eine Ausgabe, die die Prüfsumme für den hochgeladenen Teil enthält.

  5. Führen Sie den upload-multipart-part-Befehl erneut aus, um die verbleibenden Teile Ihres mehrteiligen Uploads hochzuladen. Aktualisieren Sie die Parameterwerte für --range und –-body in jeden Befehl so, dass sie mit dem Teil übereinstimmen, den Sie hochladen.

    aws glacier upload-multipart-part --body chunkab --range='bytes 1048576-2097151/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkac --range='bytes 2097152-3145727/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkad --range='bytes 3145728-4194303/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkae --range='bytes 4194304-4607999/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    Anmerkung

    Der --range-Parameterwert des letzten Befehls ist kleiner, da der letzte Teil des Uploads kleiner als 1 MiB ist. Bei erfolgreicher Ausführung erzeugt jeder Befehl eine Ausgabe, die die Prüfsumme für den hochgeladenen Teil enthält.

  6. Als Nächstes stellen Sie das Archiv zusammen und schließen den Upload ab. Sie müssen die Gesamtgröße und den SHA256 Baumhash des Archivs angeben.

    Um den SHA256 Baumhash des Archivs zu berechnen, können Sie C# oder Python verwendenJava. In diesem Beispiel verwenden Sie Python. Anweisungen zur Verwendung von Java oder C# finden Sie unter Berechnen von Prüfsummen.

    Erstellen Sie die Python-Datei checksum.py und fügen Sie den folgenden Code ein. Falls erforderlich, ersetzen Sie den Namen der Originaldatei.

    from botocore.utils import calculate_tree_hash checksum = calculate_tree_hash(open('file_to_upload', 'rb')) print(checksum)
  7. Führen Sie checksum.py den Befehl aus, um den SHA256 Baumhash zu berechnen. Der folgende Hash stimmt möglicherweise nicht mit Ihrer Ausgabe überein.

    $ python3 checksum.py $ 3d760edb291bfc9d90d35809243de092aea4c47b308290ad12d084f69988ae0c
  8. Verwenden Sie den complete-multipart-upload-Befehl, um den Upload des Archivs abzuschließen. Ersetzen Sie die Werte für die Parameter --vault-name, --account-ID, --upload-ID und --checksum. Der --archive-Parameterwert gibt die Gesamtgröße des Archivs in Byte an. Dieser Wert muss die Summe aller Größen der einzelnen Teile sein, die Sie hochgeladen haben. Ersetzen Sie diesen Wert bei Bedarf.

    aws glacier complete-multipart-upload --archive-size 4608000 --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID --checksum checksum

    Nach Abschluss gibt der Befehl die ID, die Prüfsumme und den Speicherort des Archivs in S3 Glacier aus.