Stocker et récupérer des fichiers avec Amazon S3 - Kit SDK AWS Mobile

Le SDKAWS mobile pour Xamarin est désormais inclus dans leAWS SDK for .NET. Ce guide fait référence à la version archivée du SDK mobile pour Xamarin.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Stocker et récupérer des fichiers avec Amazon S3

Amazon Simple Storage Service (Amazon S3) offre aux développeurs d'applications mobiles un espace de stockage d'objets sécurisé, durable et hautement évolutif. Amazon S3 est facile à utiliser et doté d'une interface de services Web simple pour stocker et récupérer toute quantité de données depuis n'importe où sur le Web.

Le didacticiel ci-dessous explique comment intégrer le S3TransferUtility, un utilitaire de haut niveau permettant d'utiliser S3 avec votre application. Pour plus d'informations sur l'utilisation de S3 à partir d'applications Xamarin, consultez la page Amazon Simple Storage Service (S3).

Configuration du projet

Prérequis

Avant de commencer ce didacticiel, vous devez suivre toutes les instructions de la section Configurer un kit SDK AWS Mobile pour .NET et Xamarin.

Ce didacticiel suppose également que vous avez déjà créé un compartiment S3. Pour créer un compartiment S3, consultez la page Console AWS S3.

Définir les autorisations pour S3

La stratégie de rôle IAM par défaut autorise votre application à accéder à Amazon Mobile Analytics et Amazon Cognito Sync. Pour que votre pool d'identités Cognito puisse accéder à Amazon S3, vous devez modifier les rôles de ce pool d'identités.

  1. Accédez à la console Identity and Access Management et cliquez sur Rôles dans le volet de gauche.

  2. Entrez le nom du pool d'identités dans la zone de recherche. Deux rôles seront répertoriés : un premier pour les utilisateurs authentifiés et un second pour les utilisateurs non authentifiés.

  3. Cliquez sur le rôle pour les utilisateurs non authentifiés (unauth sera ajouté au nom du pool d'identités).

  4. Cliquez sur Créer une stratégie de rôle, sélectionnez Générateur de stratégies, puis cliquez sur Sélectionner.

  5. Sur la page Modifier les autorisations, entrez les paramètres affichés dans l'image suivante, en remplaçant le nom de ressource Amazon (ARN) par le vôtre. L'ARN d'un compartiment S3 ressemble à ceci : arn:aws:s3:::examplebucket/*. Il se compose de la région dans laquelle se trouve le compartiment et du nom du compartiment. Les paramètres ci-dessous accordent au pool d'identités complet l'accès à toutes les actions pour le compartiment spécifié.

  1. Cliquez sur le bouton Ajouter une instruction, puis sur Étape suivante.

  2. L'Assistant vous indiquera la configuration qui aura été générée. Cliquez sur Apply Policy.

Pour plus d'informations sur l'octroi d'accès à S3, consultez Octroi d'accès à un compartiment Amazon S3.

AdditionNuGetPour S3 afin de votre projet

Suivez l'étape 4 des instructions deConfigurer le kit SDK AWS Mobile pour .NET et Xamarinpour ajouter le S3NuGetpour votre projet.

(facultatif) Configurer la version de Signature pour les requêtes S3

Chaque interaction avec Amazon S3 est authentifiée ou anonyme. AWS utilise les algorithmes Signature Version 4 ou Signature Version 2 pour authentifier les appels au service.

Toutes les nouvelles régions AWS créées après janvier 2014 prennent en charge Signature Version 4 uniquement. Cependant, de nombreuses régions plus anciennes prennent encore en charge les demandes de Signature Version 4 et Signature Version 2.

Si votre compartiment se trouve dans une région qui ne prend pas en charge les requêtes Signature Version 2 (une liste de ces régions est disponible surcette page, vous devez définir leAWSConfigsS3.UseSignaturePropriété Version4 à « true » comme ceci :

AWSConfigsS3.UseSignatureVersion4 = true;

Pour plus d'informations sur les versions d'AWS Signature, consultez la page Demandes d'authentification (AWS Signature Version 4).

Initialiser le S3TransferUtilityClient

Créez un client S3, passez-lui l'objet des informations d'identification AWS, puis passez le client S3 à l'utilitaire de transfert, comme suit :

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

Charger un fichier dans Amazon S3

Pour charger un fichier dans S3, appelez Upload sur l'objet Transfer Utility (Utilitaire de transfert) avec les paramètres suivants :

  • file : nom de chaîne du fichier que vous souhaitez charger

  • bucketName : nom de chaîne du compartiment S3 destiné au stockage du fichier

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

Pour le code ci-dessus, vous devez avoir un fichier dans le répertoire Environment.SpecialFolder.ApplicationData. Les chargements utilisent automatiquement la fonctionnalité de téléchargement en plusieurs parties de S3 sur les fichiers volumineux pour améliorer le débit.

Télécharger un fichier à partir d'Amazon S3

Pour télécharger un fichier depuis S3, appelez Download sur l'objet Transfer Utility (Utilitaire de transfert) avec les paramètres suivants :

  • file : nom de chaîne du fichier que vous souhaitez télécharger

  • bucketName : nom de chaîne du compartiment S3 à partir duquel vous voulez télécharger le fichier

  • key : chaîne représentant le nom de l'objet S3 (un fichier dans le cas présent) à télécharger

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

Pour plus d'informations sur l'accès à Amazon S3 à partir d'une application Xamarin, consultez la page Amazon Simple Storage Service (S3).