Hochladen großer Archive mit demAWS CLI - Amazon S3 Glacier

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 großer Archive mit demAWS CLI

Sie können ein Archiv in Amazon S3 Glacier (S3 Glacier) hochladen, indem Sie dieAWS 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 ein Teilupload fehlschlägt, müssen Sie nur diesen Teil erneut hochladen, nicht das gesamte Archiv. Sie können mehrteilige Uploads für Archive mit einer Größe von 1 Byte bis etwa 40.000 Gibibytes (GiB) verwenden.

Weitere Informationen zu den mehrteiligen S3 Glacier-Uploads finden Sie unterHochladen von großen Archiven in Teilen (Multipart Upload).

(Voraussetzung) Einrichten der AWS CLI

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

    Installieren des AWS Command Line Interface

    Konfigurieren von AWS Command Line Interface

  2. Überprüfen Sie IhreAWS CLI Einrichtung, indem Sie die folgenden Befehle in die in die in die in die in die in die in beschriebenen Schritte ausführen. 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 denlist-vaults Befehl, um eine Liste der S3 Glacier-Tresore für das konfigurierte Konto abzurufen. Ersetzen Sie 123456789012 durch IhreAWS-Konto ID.

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

      aws configure list

(Voraussetzung) InstallierenPython

Um einen mehrteiligen Upload abzuschließen, müssen Sie den SHA256-Baum-Hash des Archivs berechnen, das Sie hochladen. Dies ist etwas anderes als die Berechnung des SHA256-Baum-Hashs der Datei, die Sie hochladen möchten. Um den SHA256-Baum-Hash des Archivs zu berechnen, das Sie hochladen, können Sie C# (mit.NET) oder verwendenJavaPython. In diesem Beispiel verwenden SiePython. Anweisungen zur Verwendung vonJava oder C# finden Sie unterBerechnen von Prüfsummen.

Weitere Informationen zur InstallationPython finden Sie unter Installieren oder AktualisierenPython im Boto3-Entwicklerhandbuch.

(Voraussetzung) Erstellen Sie einen S3 Glacier Vault

Um das folgende Beispiel verwenden zu können, müssen Sie mindestens einen S3 Glacier-Tresor erstellt haben. Weitere Informationen zum Erstellen von Tresoren finden Sie unterErstellen eines Tresors in Amazon S3 Glacier.

Beispiel: Ausschnittsweises Hochladen großer Archive mithilfe desAWS CLI

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

Wichtig

Bevor Sie mit diesem Verfahren beginnen, stellen Sie sicher, dass Sie die in in den in in in in beschriebenen Schritte ausgeführt haben. Um ein Archiv hochzuladen, müssen Sie einen Tresor erstellt undAWS CLI konfiguriert haben und bereit seinJava, C# zu verwenden oder einen SHA256-Baum-HashPython zu berechnen.

Das folgende Verfahren verwendet diecomplete-multipart-uploadAWS CLI Befehleinitiate-multipart-uploadupload-multipart-part, und.

Ausführlichere Informationen zu den einzelnen Befehlen finden Sie unter initiate-multipart-uploadupload-multipart-part, und complete-multipart-uploadin der AWS CLIBefehlsreferenz.

  1. Verwenden Sie den initiate-multipart-uploadBefehl, um eine mehrteilige Upload-Ressource zu erstellen. Geben Sie in Ihrer Anfrage die Bauteilgröße in Bytes an. Jeder Teil, den Sie hochladen, mit Ausnahme des letzten Teils, hat diese Größe. Sie müssen die Gesamtgröße des Archivs nicht kennen, wenn Sie einen Upload starten. 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 in--vault-name und--account-ID -Parameter mit Ihren eigenen Informationen. Dieser Befehl gibt an, dass Sie ein Archiv mit einer Teilgröße von 1 Mebibyte (MiB) (1024 x 1024 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" }

    Wenn der Befehl abgeschlossen ist, gibt er die Upload-ID und den Standort der mehrteiligen Upload-Ressource in S3 Glacier aus. Sie werden diese Upload-ID in den nachfolgenden Schritten verwenden.

  2. In diesem Beispiel können Sie die folgenden Befehle verwenden, um eine 4,4-MiB-Datei zu erstellen, sie in 1-MiB-Chunks aufzuteilen und jeden Chunk hochzuladen. Um Ihre eigenen Dateien hochzuladen, können Sie ein ähnliches Verfahren anwenden, indem Sie Ihre Daten in Blöcke aufteilen und jeden Teil hochladen.

    Linux oder macOS

    Der folgende Befehl erstellt eine 4,4 MiB-Datei mit dem Namenfile_to_upload unter Linux oder macOS.

    mkfile -n 9000b file_to_upload
    Windows

    Der folgende Befehl erstellt eine 4,4 MiB-Datei mit dem Namenfile_to_upload unter Windows.

    fsutil file createnew file_to_upload 4608000
  3. Als Nächstes teilen Sie diese Datei in 1-MiB-Chunks auf.

    split -b 1048576 file_to_upload chunk

    Sie haben jetzt die folgenden fünf Chunks. Die ersten vier sind 1 MiB und die letzten ungefähr 400 Kibibytes (KiB).

    chunkaa chunkab chunkac chunkad chunkae
  4. Verwenden Sie den upload-multipart-partBefehl, um einen Teil eines Archivs hochzuladen. Sie können die in beliebiger Reihenfolge die in die in die in die in beschriebenen Teile hochladen. Sie können sie 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--upload-id Parameter--vault-name--account-ID, und. Die Upload-ID muss mit der ID übereinstimmen, die als Ausgabe desinitiate-multipart-upload Befehls angegeben wurde. Der--range Parameter gibt an, dass Sie einen Teil mit einer Größe von 1 MiB (1024 x 1024 Byte) hochladen. Diese Größe muss mit dem übereinstimmen, was Sie iminitiate-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

    Wenn der Befehl erfolgreich ist, erzeugt der Befehl eine Ausgabe, die die Prüfsumme für den hochgeladenen Teil enthält.

  5. Führen Sie denupload-multipart-part Befehl erneut aus, um die verbleibenden Teile Ihres mehrteiligen Uploads hochzuladen. Aktualisieren Sie die--range–-body AND-Parameterwerte für jeden Befehl, sodass sie dem Teil entsprechen, 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 unseres Uploads weniger als 1 MiB beträgt. Bei Erfolg erzeugt jeder Befehl eine Ausgabe, die die Prüfsumme für jeden hochgeladenen Teil enthält.

  6. Als Nächstes stellen Sie das Archiv zusammen und beenden den Upload. Sie müssen die Gesamtgröße und den SHA256-Baum-Hash des Archivs angeben.

    Um den SHA256-Baum-Hash des Archivs zu berechnen, können Sie C# oder verwendenJavaPython. In diesem Beispiel verwenden SiePython. Anweisungen zur Verwendung vonJava oder C# finden Sie unterBerechnen von Prüfsummen.

    Erstellen Sie diePython Dateichecksum.py und fügen Sie den folgenden Code ein. Ersetzen Sie bei Bedarf 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 Siechecksum.py diesen Befehl aus, um den SHA256-Baum-Hash zu berechnen. Der folgende Hash entspricht möglicherweise nicht Ihrer Ausgabe.

    $ python3 checksum.py $ 3d760edb291bfc9d90d35809243de092aea4c47b308290ad12d084f69988ae0c
  8. Verwenden Sie den complete-multipart-uploadBefehl, um den Archiv-Upload abzuschließen. Ersetzen Sie die Werte für die--checksum Parameter--vault-name--account-ID--upload-ID,, und. 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

    Wenn der Befehl abgeschlossen ist, gibt er die ID, die Prüfsumme und den Speicherort des Archivs in S3 Glacier aus.