Das AWS Mobile SDK für Xamarin ist jetzt in der enthalten. AWS SDK für .NET Dieses Handbuch bezieht sich auf die archivierte Version des Mobile SDK für Xamarin.
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 erklärt, wie Sie S3 TransferUtility, ein High-Level-Hilfsprogramm für die Verwendung von S3, in Ihre App integrieren. Weitere Informationen über die Nutzung von S3 in Xamarin-Anwendungen erhalten Sie unter Amazon Simple Storage Service (S3).
Projekteinrichtung
Voraussetzungen
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
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.
-
Navigieren Sie zur Identity and Access Management Console
und klicken Sie im linken Bereich auf Roles. -
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.
-
Klicken Sie auf die Rolle für nicht authentifizierte Benutzer (an den Identitäten-Pool-Namen ist "unauth" angehängt).
-
Klicken Sie aufCreate Role Policy, wählen Sie Policy Generator und klicken Sie dann auf Select.
-
Geben Sie auf der Seite Edit Permissions die in der folgenden Abbildung gezeigten Einstellungen ein. Ersetzen Sie dabei den Amazon-Ressourcennamen (ARN) durch den eigenen Namen. 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.
-
Klicken Sie auf die Schaltfläche Add Statement und anschließend auf Next Step.
-
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
NuGet Package für S3 zu Ihrem Projekt hinzufügen
Folgen Sie Schritt 4 der Anweisungen unter Einrichten des AWS Mobile SDK for .NET and Xamarin, um das NuGet S3-Paket zu 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-Anfragen nicht unterstützt, müssen Sie S3 einrichten. AWSConfigs UseSignatureVersionDie Eigenschaft 4 wird wie folgt auf „true“ gesetzt:
AWSConfigsS3.UseSignatureVersion4 = true;
Weitere Informationen zu AWS Signature-Versionen erhalten Sie unter Authenticating Requests (AWS Signature Version 4).
Initialisieren Sie den S3-Client TransferUtility
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" );
Der obige Code geht davon aus, dass sich im Verzeichnis Environment eine Datei befindet. SpecialFolder. ApplicationData. 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).