Archivia e recupera file con Amazon S3 - AWS Mobile SDK

L'SDKAWS Mobile per Xamarin è ora incluso inAWS SDK for .NET. Questa guida fa riferimento alla versione archiviata di Mobile SDK per Xamarin.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Archivia e recupera file con Amazon S3

Amazon Simple Storage Service (Amazon S3) offre agli sviluppatori di dispositivi mobili uno storage di oggetti sicuro, durevole e altamente scalabile. Amazon S3 è di facile utilizzo e include un'interfaccia Web service intuitiva che consente di archiviare e recuperare qualsiasi quantità di dati ovunque nel Web.

Il tutorial che segue illustra come integrare l'S3TransferUtility, un'utilità di alto livello per l'utilizzo di S3 con la tua app. Per ulteriori informazioni sull'utilizzo di S3 dalle applicazioni Xamarin, consultaAmazon Simple Storage Service (S3).

Configurazione progetto

Prerequisiti

È necessario compilare tutte le istruzioni riportate nelConfigurazione dell'SDK AWS Mobile per.NET e Xamarinprima di iniziare questo tutorial.

Questo tutorial presuppone inoltre che tu abbia già creato un bucket S3. Per creare un bucket S3, visita ilConsole AWS S3.

Impostazione delle autorizzazioni per S3

La policy del ruolo IAM predefinita concede all'applicazione l'accesso ad Amazon Mobile Analytics e Amazon Cognito Sync. Affinché il pool di identità Cognito acceda ad Amazon S3, devi modificare i ruoli del pool di identità.

  1. Accedi aIdentity and Access Management Consolee clicca suRuolinel riquadro sinistro.

  2. Digitare il nome del pool di identità nella casella di ricerca. Vengono elencati due ruoli, relativi, rispettivamente, agli utenti autenticati e non.

  3. Fare clic sul ruolo degli utenti non autenticati (non verrà aggiunto l'autenticazione al nome del pool di identità).

  4. Fare clic suCreazione di policy di ruolo, selezionaGeneratore di policye quindi fai clic suSeleziona.

  5. SulModifica delle autorizzazioniinserisci le impostazioni mostrate nell'immagine seguente, sostituendo l'Amazon Resource Name (ARN) con il tuo. L'ARN di un bucket S3 ha l'aspetto diarn:aws:s3:::examplebucket/*ed è composto dalla regione in cui si trova il bucket e dal nome del bucket. Le impostazioni mostrate di seguito daranno al tuo pool di identità pieno l'accesso a tutte le azioni per il bucket specificato.

    Edit Permissions interface for AWS policy creation, showing options for Amazon S3 access control.
  1. Fai clic sull'icona della barra degli strumentiAggiungi istruzionepulsante e poi fai clicFase successiva.

  2. La procedura guidata mostrerà la configurazione generata. Fare clic suApplica policy.

Per ulteriori informazioni sulla concessione dell'accesso a S3, consultaConcessione dell'accesso a un bucket Amazon S3.

InserisciNuGetPacchetto per S3 per il tuo progetto

Seguire il passaggio 4 delle istruzioni riportate inConfigurazione dell'SDK AWS Mobile per.NET e Xamarinper aggiungere l'S3NuGetConfigurazione del progetto.

(facoltativo) Configurare la versione Signature per le richieste S3

Ogni interazione con Amazon S3 è autenticata o anonima. AWS utilizza gli algoritmi Signature Version 4 o Signature Version 2 per autenticare le chiamate al servizio.

Tutte le nuove regioni AWS create dopo gennaio 2014 supportano solo Signature Version 4. Tuttavia, molte regioni precedenti supportano ancora le richieste Signature Version 4 e Signature Version 2.

Se il bucket si trova in una delle regioni che non supportano le richieste Signature Version 2 come elencato suquesta pagina, devi impostare ilAWSConfigsS3.UseSignatureproprietà Version4 su «true» in questo modo:

AWSConfigsS3.UseSignatureVersion4 = true;

Per ulteriori informazioni sulle versioni di AWS Signature, consultaAutenticazione delle richieste (AWS Signature Version 4).

Inizializza l'S3TransferUtilityClient

Crea un client S3, passandolo al tuo oggetto credenziali AWS, quindi passa il client S3 all'utilità di trasferimento, in questo modo:

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

Caricamento di un file su Amazon S3

Per caricare un file su S3, chiamaUploadsull'oggetto Transfer Utility, passando i seguenti parametri:

  • file- Nome stringa del file che desideri caricare

  • bucketName- Nome stringa del bucket S3 per archiviare il file

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

Il codice sopra presuppone che ci sia un file nella directory Environment.SpecialFolder.ApplicationData. I caricamenti utilizzano automaticamente la funzionalità di caricamento multiparte di S3 su file di grandi dimensioni per migliorare il throughput.

Scaricare un file da Amazon S3

Per scaricare un file da S3, chiamaDownloadsull'oggetto Transfer Utility, passando i seguenti parametri:

  • file- Nome stringa del file che desideri scaricare

  • bucketName- Nome stringa del bucket S3 da cui scaricare il file

  • key- Una stringa che rappresenta il nome dell'oggetto S3 (in questo caso un file) da scaricare

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

Per ulteriori informazioni sull'accesso ad Amazon S3 da un'applicazione Xamarin, consultaAmazon Simple Storage Service (S3).