Herunterladen eines Archivs aus einem Tresor in S3 Glacier mit dem AWS SDK for .NET - 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.

Herunterladen eines Archivs aus einem Tresor in S3 Glacier mit dem AWS SDK for .NET

Das folgende C#-Codebeispiel verwendet die High-Level-API des AWS SDK for .NET, um das Archiv herunterzuladen, das Sie vorher in Hochladen eines Archivs in einen Tresor in S3 Glacier mit dem AWS SDK for .NET hochgeladen haben. Beachten Sie im Codebeispiel Folgendes:

  • Das Beispiel erstellt eine Instance der ArchiveTransferManager-Klasse für den angegebenen Endpunkt der Amazon-S3-Glacier-Region.

  • Im Codebeispiel wird die Region „USA West (Oregon)“ (us-west-2) verwendet, damit die Region dem Standort entspricht, an dem der Tresor zuvor in Schritt 2: Erstellen eines Tresors in S3 Glacier erstellt wurde.

  • Im Beispiel wird der API-Vorgang Download der ArchiveTransferManager-Klasse zum Herunterladen Ihres Archivs verwendet. Im Beispiel werden ein Amazon Simple Notification Service (Amazon SNS)-Thema und eine Amazon Simple Queue Service (Amazon SQS)-Warteschlange erstellt, die dieses Thema abonniert hat. Wenn Sie einen AWS Identity and Access Management (IAM)-Administrator erstellt haben, wie in Schritt 1: Bevor Sie mit S3 Glacier beginnen beschrieben, hat Ihr Benutzer die erforderlichen IAM-Berechtigungen für die Erstellung und Verwendung des Amazon-SNS-Themas und der Amazon-SQS-Warteschlange.

  • Das Beispiel initiiert daraufhin den Abrufauftrag für das Archiv und fragt die Warteschlange für das Archiv nach der Verfügbarkeit ab. Wenn das Archiv verfügbar ist, beginnt der Download. Weitere Informationen zu Abrufzeiten finden Sie unter Archiv-Abrufoptionen.

Eine schrittweise Anleitung für das Ausführen dieses Beispiels finden Sie unter Ausführen von Codebeispielen. Sie müssen den Code wie gezeigt mit der Archiv-ID der in Schritt 3: Hochladen eines Archivs in einen Tresor in S3 Glacier hochgeladenen Datei aktualisieren.

Beispiel – Herunterladen eines Archivs mit der High-Level-API des AWS SDK for .NET
using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.goskope.com.docsamples { class ArchiveDownloadHighLevel_GettingStarted { static string vaultName = "examplevault"; static string archiveId = "*** Provide archive ID ***"; static string downloadFilePath = "*** Provide the file name and path to where to store the download ***"; public static void Main(string[] args) { try { var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2); var options = new DownloadOptions(); options.StreamTransferProgress += ArchiveDownloadHighLevel_GettingStarted.progress; // Download an archive. Console.WriteLine("Intiating the archive retrieval job and then polling SQS queue for the archive to be available."); Console.WriteLine("Once the archive is available, downloading will begin."); manager.Download(vaultName, archiveId, downloadFilePath, options); Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } catch (AmazonGlacierException e) { Console.WriteLine(e.Message); } catch (AmazonServiceException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } static int currentPercentage = -1; static void progress(object sender, StreamTransferProgressArgs args) { if (args.PercentDone != currentPercentage) { currentPercentage = args.PercentDone; Console.WriteLine("Downloaded {0}%", args.PercentDone); } } } }