Mediante AWS SDK for .NET - Amazon Simple Storage Service

Mediante AWS SDK for .NET

AWS SDK for .NET proporciona la API para las operaciones de buckets y objetos de Amazon S3. Para operaciones de objeto, además de proporcionar la API para cargar objetos en una sola operación, el SDK proporciona la API para cargar objetos grandes en partes (consulte Carga y copia de objetos con la carga multiparte).

El AWS SDK for .NET le brinda la opción de utilizar una API de alto nivel o de bajo nivel.

API de bajo nivel

Las API de bajo nivel corresponden a las operaciones REST de Amazon S3 subyacentes, como crear, actualizar y eliminar operaciones que se aplican a buckets y objetos. Cuando se cargan objetos grandes con la API de carga multiparte de bajo nivel (consulte Carga y copia de objetos con la carga multiparte), se dispone de un mayor control. Por ejemplo, permite detener y reanudar cargas multiparte, variar los tamaños de las partes durante la carga, o comenzar cargas cuando no se conoce de antemano el tamaño de los datos. Si no tiene estos requisitos, utilice la API de alto nivel para cargar objetos.

API de alto nivel

Para cargar objetos, el SDK proporciona un mayor nivel de abstracción con la clase TransferUtility. La API de alto nivel es una API más simple, que permite cargar archivos y secuencias en Amazon S3 con tan solo unas pocas líneas de código. Debe utilizar esta API para cargar datos a menos que necesite controlar la carga según lo descrito en la sección anterior sobre las API de bajo nivel.

Para datos de tamaño más pequeño, la API TransferUtility carga los datos en una sola operación. Sin embargo, TransferUtility cambia a la API de carga multiparte cuando el tamaño de los datos alcanza cierto límite. En forma predeterminada, utiliza varios subprocesos para cargar las partes de manera simultánea. Si la carga de una parte falla, la API reintenta cargar la parte fallida hasta tres veces. Sin embargo, estas son opciones configurables.

nota

Cuando se utiliza una secuencia para el origen de datos, la clase TransferUtility no realiza cargas simultáneas.

La organización de la API de .NET

Cuando escribe aplicaciones de Amazon S3 con AWS SDK for .NET, debe utilizar el AWSSDK.dll. Los siguientes espacios de nombres en este conjunto proporcionan la API de carga multiparte:

  • Amazon.S3.Transfer: proporciona la API de alto nivel para cargar sus datos en partes.

    Incluye la clase TransferUtility que le permite especificar un archivo, un directorio o una secuencia para cargar sus datos. También incluye las clases TransferUtilityUploadRequest y TransferUtilityUploadDirectoryRequest para establecer configuraciones avanzadas, como el número de subprocesos simultáneos, el tamaño de las partes, los metadatos de objetos, la clase de almacenamiento (STANDARD, REDUCED_REDUNDANCY) y la lista de control de acceso (ACL, Access Control List) de los objetos.

  • Amazon.S3: proporciona la implementación para las API de bajo nivel.

    Brinda métodos que corresponden a la API de carga multiparte REST de Amazon S3 (consulte Uso de la API de REST).

  • Amazon.S3.Model: proporciona las clases de API de bajo nivel para crear respuestas de procesos y solicitudes. Por ejemplo, proporciona las clases InitiateMultipartUploadRequest y InitiateMultipartUploadResponse que puede utilizar al iniciar una carga multiparte, y las clases UploadPartRequest y UploadPartResponse para cargar partes.

  • Amazon.S3.Encryption: proporciona AmazonS3EncryptionClient.

  • Amazon.S3.Util: proporciona diversas clases de utilidad como AmazonS3Util y BucketRegionDetector.

Para obtener más información acerca de la API de AWS SDK for .NET, consulte la Referencia de la API del SDK de AWS para .NET versión 3.

Ejecución de ejemplos de código .NET de Amazon S3

Los ejemplos de código .NET que aparecen en esta guía son compatibles con la versión 3.0. de AWS SDK for .NET. Para obtener información acerca de cómo configurar y ejecutar ejemplos de código, consulte Introducción al SDK de AWS para .NET en la Guía para desarrolladores del SDK de AWS para .NET.