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.
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 clasesTransferUtilityUploadRequest
yTransferUtilityUploadDirectoryRequest
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
yInitiateMultipartUploadResponse
que puede utilizar al iniciar una carga multiparte, y las clasesUploadPartRequest
yUploadPartResponse
para cargar partes. -
Amazon.S3.Encryption: proporciona
AmazonS3EncryptionClient
. -
Amazon.S3.Util: proporciona diversas clases de utilidad como
AmazonS3Util
yBucketRegionDetector
.
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.