Verwendung der AWS SDK for .NET - Amazon Simple Storage Service

Verwendung der AWS SDK for .NET

Das AWS SDK for .NET stellt eine API für den Amazon-S3-Bucket und Objektoperationen bereit. Für Objektoperationen bietet der SDK zusätzlich zu der API für das Hochladen von Objekten in einer einzigen Operation die API zum mehrteiligen Hochladen großer Objekte bereit (siehe Hochladen und Kopieren von Objekten mit mehrteiligen Uploads).

Das AWS SDK for .NET bietet Ihnen die Option, eine High-Level- oder eine Low-Level-API zu verwenden.

API auf niedriger Ebene

Die Low-Level-APIs entsprechen den zugrunde liegenden Amazon-S3-REST-Vorgängen, wie beispielsweise zum Erstellen, Aktualisieren und Löschen, die auf Buckets und Objekte angewendet werden. Wenn Sie große Objekte über die Low-Level-API für mehrteilige Uploads hochladen (siehe Hochladen und Kopieren von Objekten mit mehrteiligen Uploads), bietet dies eine bessere Kontrolle. Beispielsweise können Sie damit mehrteilige Uploads unterbrechen und fortsetzen, die Teilegrößen während des Uploads ändern oder Uploads beginnen, obwohl Sie die Größe der Daten nicht vorab kennen. Wenn Sie diese Anforderungen nicht haben, verwenden Sie die High-Level API zum Hochladen von Objekten.

API auf hoher Ebene

Zum Hochladen von Objekten bietet das SDK einen höheren Abstraktionsgrad, indem es die Klasse TransferUtility bereitstellt. Die High-Level API ist eine einfachere API, wobei Sie mit nur ein paar Codezeilen Dateien und Streams in Amazon S3 hochladen können. Sie sollten diese API verwenden, um Daten hochzuladen, es sei denn, Sie müssen den Upload kontrollieren, wie im vorigen Abschnitt über die Low-Level API beschrieben.

Für kleinere Datengrößen lädt die TransferUtility-API Daten in einer einzigen Operation hoch. Der TransferUtility wechselt jedoch zur Verwendung der API für den mehrteiligen Upload, wenn die Datengröße eine bestimmte Schwelle erreicht. Standardmäßig verwendet er mehrere Threads, um die Teile nebenläufig hochzuladen. Wenn der Upload eines Teils fehlschlägt, wiederholt API diesen Upload bis zu dreimal. Dies sind jedoch konfigurierbare Optionen.

Anmerkung

Wenn Sie einen Stream für die Datenquelle verwenden, führt die TransferUtility-Klasse keine gleichzeitigen Uploads durch.

Die .NET API Organisation

Wenn Sie Amazon-S3-Anwendungen mit dem AWS SDK for .NET schreiben, verwenden Sie die AWSSDK.dll. Die folgenden Namespaces in dieser Gruppe stellen die API für mehrteilige Uploads bereit:

  • Amazon.S3.Transfer – Stellt die High-Level API für den mehrteiligen Upload Ihrer Daten bereit.

    Beinhaltet die TransferUtility-Klasse, die Ihnen ermöglicht, eine Datei, ein Verzeichnis oder einen Stream zum Hochladen Ihrer Daten bereitzustellen. Darüber hinaus beinhaltet sie die Klassen TransferUtilityUploadRequest und TransferUtilityUploadDirectoryRequest, um erweiterte Einstellungen zu konfigurieren, wie beispielsweise die Anzahl gleichzeitiger Threads, die Teilegröße, die Objekt-Metadaten, die Speicherklasse (STANDARD, REDUCED_REDUNDANCY) und die Objekt-Zugriffskontrollliste (ACL).

  • Amazon.S3 – Stellt die Implementierung für Low-Level APIs bereit.

    Bietet Methoden, die der Amazon-S3-REST-API für den mehrteiligen Upload entsprechen (siehe Verwenden der REST-API).

  • Amazon.S3.Model –Stellt die Low-Level API-Klassen zum Erstellen von Anfragen und zum Verarbeiten von Antworten bereit. Sie beinhaltet beispielsweise die Klassen InitiateMultipartUploadRequest und InitiateMultipartUploadResponse, die Sie für die Initiierung eines mehrteiligen Uploads verwenden können, und die Klassen UploadPartRequest und UploadPartResponse, wenn Teile hochgeladen werden.

  • Amazon.S3.Encryption – Stellt AmazonS3EncryptionClient bereit.

  • Amazon.S3.Util – Stellt verschiedene Klassen wie z. B. AmazonS3Util und BucketRegionDetector bereit.

Weitere Informationen zur AWS SDK for .NET-API finden Sie unter AWS-SDK für .NET Version 3 API-Referenz.

Ausführen der .NET-Codebeispiele für Amazon S3

Die .NET-Codebeispiele in diesem Handbuch sind sämtlich mit der AWS SDK for .NET-Version 3.0 kompatibel. Informationen zum Einrichten und Ausführen der Codebeispiele finden Sie unter Getting started with the AWS SDK for .NET (Erste Schritte mit dem AWS-SDK für .NET) im Entwicklerbuch für AWS-SDK für .NET.