Amazon Simple Storage Service (S3) - SDK para móviles de AWS

El AWS SDK para móviles de Xamarin ahora está incluido en AWS SDK for .NET. Esta guía hace referencia a la versión archivada del SDK para móviles para Xamarin.

Amazon Simple Storage Service (S3)

¿Qué es S3?

Amazon Simple Storage Service (Amazon S3) proporciona a los desarrolladores un almacenamiento de objetos seguro, duradero y con un alto grado de escalabilidad. Amazon S3 es fácil de usar e incluye una sencilla interfaz de servicios web que le permite almacenar y recuperar la cantidad de datos que desee desde cualquier ubicación de la Web. En Amazon S3, solo se paga el espacio de almacenamiento que realmente se usa. No hay cuota mínima ni costos de configuración.

Amazon S3 proporciona almacenamiento de objetos económico para una amplia variedad de casos de uso, entre los que se incluyen las aplicaciones en la nube, la distribución de contenido, las operaciones de backup y archivado, la recuperación de desastres y el análisis de big data.

Para obtener información acerca de la disponibilidad regional de AWS S3, consulte la disponibilidad regional de los servicios de AWS.

Conceptos clave

Bucket

Todos los objetos almacenados en Amazon S3 residen en un bucket. Puede utilizar los buckets para agrupar objetos relacionados del mismo modo en que usa un directorio para agrupar archivos en un sistema de archivos. Los buckets tienen propiedades, como, por ejemplo, permisos de acceso y estado de control de versiones, y se puede especificar la región en la que deben residir.

Para obtener más información acerca de los buckets de S3, consulte Working with Buckets en la Guía para desarrolladores de S3.

Objetos

Los objetos son los datos que se almacenan en Amazon S3. Todos los objetos residen en un bucket que se crea en cada región de AWS.

Los objetos almacenados en una región nunca la abandonan, a menos que se transfieran expresamente a otra región. Por ejemplo, los objetos almacenados en la región UE (Irlanda) nunca salen de ella. Los objetos almacenados en una región de Amazon S3 permanecen físicamente en esa región. Amazon S3 no almacena copias ni las mueve a ninguna otra región. Sin embargo, puede obtener acceso a los objetos desde cualquier lugar, siempre y cuando disponga de los permisos necesarios.

Los objetos pueden tener cualquier tipo de archivo: imágenes, datos de backup, películas, etc. Un objeto puede tener hasta 5 TB. Puede haber un número ilimitado de objetos en un bucket.

Para poder cargar un objeto en Amazon S3, debe disponer de permisos de escritura en un bucket. Para obtener más información acerca de la definición de los permisos de un bucket, consulte Editing Bucket Permissions en la Guía para desarrolladores de S3.

Para obtener más información acerca de los objetos de S3, consulte Working with Objects en la Guía para desarrolladores de S3.

Metadatos de objetos

Cada objeto de Amazon S3 tiene un conjunto de pares de clave-valor que representa sus metadatos. Existen dos tipos de metadatos:

  • Metadatos del sistema: procesados en algunos casos por Amazon S3, por ejemplo, Content-Type y Content-Length.

  • Metadatos del usuario: nunca se procesan en Amazon S3. Los metadatos del usuario se almacenan con el objeto y se devuelven con este. El tamaño máximo de los metadatos del usuario es de 2 KB, y tanto las claves como sus valores deben cumplir con los estándares ASCII de EE. UU.

Para obtener más información acerca de los metadatos de objetos de S3, consulte Editing Object Metadata.

Configuración del proyecto

Requisitos previos

Para utilizar Amazon S3 en su aplicación, tendrá que añadir el SDK al proyecto. Para ello, siga las instrucciones que se describen en Setting Up the AWS Mobile SDK for .NET and Xamarin.

Creación de S3 Bucket

Amazon S3 almacena los recursos de su aplicación en los buckets de Amazon S3, unos contenedores de almacenamiento en la nube que residen en una región concreta. Cada bucket de Amazon S3 debe tener un nombre único. Puede utilizar la consola de Amazon S3 para crear un bucket.

  1. Inicie sesión en la consola de Amazon S3 y haga clic en Create Bucket (Crear bucket).

  2. Escriba un nombre de bucket, seleccione una región y haga clic en Create (Crear).

Definición de permisos de S3

La política predeterminada de roles de IAM da a su aplicación acceso a Amazon Mobile Analytics y Amazon Cognito Sync. Para que el grupo de identidades de Cognito obtenga acceso a Amazon S3, debe modificar los roles del grupo de identidades.

  1. Vaya a la consola de Identity and Access Management y haga clic en Roles (Roles) en el panel izquierdo.

  2. Escriba el nombre del grupo de identidades en el campo de búsqueda. Se muestran dos roles: uno para los usuarios no autenticados y otro para los usuarios autenticados.

  3. Haga clic en el rol de los usuarios no autenticados (el nombre del grupo de identidades tendrá añadido el texto "unauth").

  4. Haga clic en Create Role Policy (Crear política de roles), seleccione Policy Generator (Generador de políticas) y haga clic en Select (Seleccionar).

  5. En la página Edit Permissions (Editar permisos), escriba la configuración que se muestra en la siguiente imagen y reemplace el nombre de recurso de Amazon (ARN) por el suyo. El ARN de un bucket de S3 es parecido a arn:aws:s3:::examplebucket/* y está integrado por la región en la que se encuentra el bucket y por el nombre del bucket. La configuración que se muestra a continuación dará a su grupo de identidades pleno acceso a todas las acciones para el bucket especificado.

    Edit Permissions interface for AWS policy creation, showing options for Amazon S3 access control.
  1. Haga clic en el botón Add Statement (Agregar instrucción) y, a continuación, haga clic en Next Step (Paso siguiente).

  2. El asistente le mostrará la configuración que ha generado. Haga clic en Apply Policy (Aplicar política).

Para obtener más información acerca del procedimiento para conceder acceso a S3, consulte Granting Access to an Amazon S3 Bucket.

(opcional) Configuración de la versión de Signature para las solicitudes de S3

Toda interacción con Amazon S3 es o autenticada o anónima. AWS utiliza los algoritmos de Signature Version 4 o Signature Version 2 para autenticar las llamadas al servicio.

Las nuevas regiones de AWS creadas después de enero de 2014 admiten únicamente Signature Version 4. Sin embargo, muchas de las regiones más antiguas todavía admiten solicitudes de Signature Version 4 y Signature Version 2.

Si su bucket se encuentra en una región que no admite solicitudes de Signature Version 2, como las incluidas en la lista de esta página, debe establecer la propiedad AWSConfigsS3.UseSignatureVersion4 en "true" de la siguiente forma:

AWSConfigsS3.UseSignatureVersion4 = true;

Para obtener más información acerca de las versiones de AWS Signature, consulte Authenticating Requests (AWS Signature Version 4).

Integración de S3 en una aplicación

Hay dos formas de interactuar con S3 en una aplicación de Xamarin. Los dos métodos se exploran de manera detallada en los siguientes temas:

Temas