Speichern und Abrufen von Daten mit Amazon S3 - AWS SDK für Mobilgeräte

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.

Speichern und Abrufen von Daten mit Amazon S3

Amazon Simple Storage Service (Amazon S3) stellt Entwicklern von Mobilgeräte-Apps sicheren, dauerhaften und hochskalierbaren Objektspeicher bereit. Amazon S3 ist bedienungsfreundlich und mit einer einfachen Web-Service-Schnittstelle zum Speichern und Abrufen beliebiger Datenmengen von jedem Ort über das Internet ausgestattet.

Im folgenden Tutorial wird erläutert, wie Sie den S3 TransferUtilityintegrieren, ein High-Level-Dienstprogramm für die Verwendung von S3 mit Ihrer App. Weitere Informationen über die Nutzung von S3 in Xamarin-Anwendungen erhalten Sie unter Amazon Simple Storage Service (S3).

Projekteinrichtung

Prerequisites

Befolgen Sie alle Anweisungen unter Einrichten von AWS Mobile SDK for .NET and Xamarin, bevor Sie mit diesem Tutorial beginnen.

In diesem Tutorial wird davon ausgegangen, dass Sie bereits einen S3-Bucket erstellt haben. Rufen Sie zum Erstellen eines S3-Bucket die S3 AWS-Konsole. auf.

Festlegen von Berechtigungen für S3

Die IAM-Standardrollenrichtlinie gewährt der Anwendung Zugriff auf Amazon Mobile Analytics und Amazon Cognito Sync. Damit der Cognito-Identitäten-Pool auf Amazon S3 zugreift, müssen Sie die Rollen des Identitäten-Pools modifizieren.

  1. Navigieren Sie zur Identity and Access Management Console und klicken Sie im linken Bereich auf Roles.

  2. Geben Sie den Identitäten-Pool-Namen in das Suchfeld ein. Es werden zwei Rollen aufgelistet: eine für nicht authentifizierte Benutzer und eine für authentifizierte Benutzer.

  3. Klicken Sie auf die Rolle für nicht authentifizierte Benutzer (an den Identitäten-Pool-Namen ist "unauth" angehängt).

  4. Klicken Sie aufCreate Role Policy, wählen Sie Policy Generator und klicken Sie dann auf Select.

  5. Geben Sie auf der Seite Edit Permissions (Berechtigungen bearbeiten) die in der folgenden Abbildung gezeigten Einstellungen ein und ersetzen Sie den Amazon-Ressourcennamen (ARN) durch Ihren eigenen. Der ARN eines S3-Bucket entspricht arn:aws:s3:::examplebucket/* und besteht aus der Region, in der sich der Bucket befindet, sowie dem Namen des Bucket. Die unten gezeigten Einstellungen gewähren dem Identitäten-Pool vollen Zugriff auf alle Aktionen für den angegebenen Bucket.

    Edit Permissions interface for AWS policy creation, showing options for Amazon S3 access control.
  1. Klicken Sie auf die Schaltfläche Add Statement und anschließend auf Next Step.

  2. Der Assistent zeigt die von Ihnen generierte Konfiguration. Klicken Sie auf Apply Policy.

Weitere Informationen zum Gewähren des Zugriffs auf S3 erhalten Sie unter Granting Access to an Amazon S3 Bucket.

Hinzufügen eines NuGet Pakets für S3 zu Ihrem Projekt

Befolgen Sie Schritt 4 der Anweisungen unter Einrichten von AWS Mobile SDK for .NET and Xamarin, um das S3 NuGet Ihrem Projekt hinzuzufügen.

(Optional) Konfigurieren der Signature Version for S3-Anforderungen

Jede Interaktion mit Amazon S3 erfolgt entweder authentifiziert oder anonym. AWS verwendet die Signature Version 4- oder Signature Version 2-Algorithmen zum Authentifizieren von Aufrufen des Services.

Alle neuen, nach Januar 2014 erstellten AWS-Regionen unterstützen nur Signature Version 4. Viele ältere Regionen unterstützen jedoch weiterhin Signature Version 4- und Signature Version 2-Anforderungen.

Wenn sich Ihr Bucket in einer der Regionen befindet, die Signature Version 2-Anforderungen nicht unterstützt, wie auf dieser Seite aufgeführt, müssen Sie die AWSConfigsS3.UseSignatureVersion4 Eigenschaft wie folgt auf „true“ setzen:

AWSConfigsS3.UseSignatureVersion4 = true;

Weitere Informationen zu AWS Signature-Versionen erhalten Sie unter Authenticating Requests (AWS Signature Version 4).

Initialisieren des S3TransferUtility

Erstellen Sie einen S3-Client, übergeben Sie die AWS-Anmeldeinformationen und dann den S3-Client an das Dienstprogramm für die Datenübertragung, z. B.:

var s3Client = new AmazonS3Client(credentials,region); var transferUtility = new TransferUtility(s3Client);

Hochladen einer Datei nach Amazon S3

Um eine Datei nach S3 hochzuladen, rufen Sie Upload für das Transfer Utility-Objekt auf und übergeben dabei die folgenden Parameter:

  • file: Name der hochzuladenden Datei als String

  • bucketName: Name des S3-Bucket, in dem die Datei gespeichert werden soll, als String

transferUtility.Upload( Path.Combine(Environment.SpecialFolder.ApplicationData,"file"), "bucketName" );

Im Code oben wird davon ausgegangen, dass sich eine Datei im Verzeichnis Environment.SpecialFolder.ApplicationData befindet. Beim Hochladen wird automatisch die S3-Funktion für mehrteiliges Hochladen großer Dateien verwendet, um den Durchsatz zu verbessern.

Herunterladen einer Datei aus Amazon S3

Um eine Datei aus S3 herunterzuladen, rufen Sie Download für das Transfer Utility-Objekt auf und übergeben dabei die folgenden Parameter:

  • file: Name der herunterzuladenden Datei als String

  • bucketName: Name des S3-Bucket, aus dem die Datei heruntergeladen werden soll

  • key: String, der den Namen des herunterzuladenden S3-Objekts (in diesem Fall eine Datei) angibt

transferUtility.Download( Path.Combine(Environment.SpecialFolder.ApplicationData,"file"), "bucketName", "key" );

Weitere Informationen zum Zugriff auf Amazon S3 aus einer Xamarin-Anwendung erhalten Sie unter Amazon Simple Storage Service (S3).