

# Anulación de la carga multiparte
<a name="abort-mpu"></a>

Comience a cargar las partes luego de iniciar una carga multiparte. Amazon S3 almacena estas partes y solo crea el objeto después de haya cargado todas las partes y enviado una solicitud para completar la carga multiparte. Al recibir la solicitud de carga multiparte completa, Amazon S3 combina las partes y crea un objeto. Si no envía correctamente la solicitud de carga multiparte completa, S3 no combina las partes y no crea un objeto. Si no desea completar una carga multiparte después de cargar las partes, debe anularla.

Se facturará todo el almacenamiento asociado con las partes cargadas. Se recomienda completar siempre la carga multiparte o detenerla con el fin de eliminar las partes cargadas. Para obtener más información sobre los precios de , consulte [Carga multiparte y precios](mpuoverview.md#mpuploadpricing).

También puede detener una carga multiparte incompleta mediante una configuración de ciclo de vida del bucket. Para obtener más información, consulte [Configuración de una política de ciclo de vida del bucket para eliminar cargas multiparte incompletas](mpu-abort-incomplete-mpu-lifecycle-config.md).

En la siguiente sección se muestra cómo detener una carga multiparte en curso en Amazon S3 con la AWS Command Line Interface, la API de REST o los AWS SDK.

## Uso de AWS CLI
<a name="abort-mpu-cli"></a>

Para obtener más información acerca del uso de la AWS CLI a fin de detener una carga multiparte, consulte [abort-multipart-upload](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/abort-multipart-upload.html) en la *Referencia de comandos de la AWS CLI*.

## Uso de la API de REST
<a name="abort-mpu-rest"></a>

Para obtener más información sobre el uso de la API de REST a fin de detener una carga multiparte, consulte [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) en la *Referencia de API de Amazon Simple Storage Service*.

## Uso de los SDK de AWS (API de alto nivel)
<a name="abort-mpu-high-level"></a>

------
#### [ Java ]

Para detener las cargas multiparte en curso mediante el AWS SDK para Java, puede anular las cargas que se iniciaron antes de una fecha específica y que aún están en curso. Una carga se considera en curso después de que la inicia y hasta que la completa o detiene.

Para detener las cargas multiparte, puede hacer lo siguiente:


|  |  | 
| --- |--- |
| 1 | Cree una instancia de S3Client. | 
| 2 | Utilice los métodos de cancelación del cliente al pasar el nombre del bucket y otros parámetros necesarios. | 

**nota**  
También puede detener una carga multiparte específica. Para obtener más información, consulte [Uso de los SDK de AWS (API de bajo nivel)](#abort-mpu-low-level).

Para ver ejemplos de cómo abortar cargas multiparte con el AWS SDK para Java, consulte [Cancelar una carga multiparte](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_AbortMultipartUpload_section.html) en la *Referencia de la API de Amazon S3*.

------
#### [ .NET ]

En el siguiente ejemplo de código C\# se detienen todas las cargas multiparte en curso que se iniciaron en un bucket específico hace una semana. Para obtener información acerca de cómo configurar y ejecutar ejemplos de código, consulte [Introducción al SDK de AWS para .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) en la *Guía para desarrolladores del SDK de AWS para .NET*. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Transfer;
using System;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class AbortMPUUsingHighLevelAPITest
    {
        private const string bucketName = "*** provide bucket name ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 s3Client;

        public static void Main()
        {
            s3Client = new AmazonS3Client(bucketRegion);
            AbortMPUAsync().Wait();
        }

        private static async Task AbortMPUAsync()
        {
            try
            {
                var transferUtility = new TransferUtility(s3Client);

                // Abort all in-progress uploads initiated before the specified date.
                await transferUtility.AbortMultipartUploadsAsync(
                    bucketName, DateTime.Now.AddDays(-7));
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        } 
    }
}
```

**nota**  
También puede detener una carga multiparte específica. Para obtener más información, consulte [Uso de los SDK de AWS (API de bajo nivel)](#abort-mpu-low-level). 

------

## Uso de los SDK de AWS (API de bajo nivel)
<a name="abort-mpu-low-level"></a>

Puede detener una carga multiparte en curso si llama al método `AmazonS3.abortMultipartUpload`. Este método elimina cualquier parte cargada Amazon S3 y libera los recursos. Deberá proporcionar el ID de carga, el nombre del bucket y el nombre de clave. En el siguiente ejemplo de código Java se muestra cómo detener una carga multiparte en curso.

Para detener una carga multiparte, debe proporcionar el ID de carga y los nombres de clave y bucket que se usaron en la carga. Luego de haber detenido una carga multiparte, no puede usar el ID de carga para cargar partes adicionales. Para obtener más información acerca de las cargas multiparte en Amazon S3, consulte [Carga y copia de objetos con la carga multiparte en Amazon S3](mpuoverview.md).

------
#### [ Java ]

Para detener una carga multiparte específica en curso mediante el AWS SDK para Java, puede usar la API de bajo nivel para abortar la carga proporcionando el nombre del bucket, la clave de objeto y el ID de carga.

**nota**  
En lugar de abortar una carga multiparte específica, puede detener todas las cargas multiparte iniciadas antes de un periodo de tiempo específico que siguen en proceso. Esta operación de limpieza es útil para detener las cargas multiparte antiguas que inició pero que no se completaron o detuvieron. Para obtener más información, consulte [Uso de los SDK de AWS (API de alto nivel)](#abort-mpu-high-level).

Para ver ejemplos de cómo abortar una carga multiparte específica con el AWS SDK para Java, consulte [Cancelar una carga multiparte](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_AbortMultipartUpload_section.html) en la *Referencia de la API de Amazon S3*.

------
#### [ .NET ]

En el siguiente ejemplo en C\# se muestra cómo detener una carga multiparte. Para ver una muestra completa de código C\# que incluye el código siguiente, consulte [Uso de los SDK de AWS (API de bajo nivel)](mpu-upload-object.md#mpu-upload-low-level).

```
AbortMultipartUploadRequest abortMPURequest = new AbortMultipartUploadRequest
{
    BucketName = existingBucketName,
    Key = keyName,
    UploadId = initResponse.UploadId
};
await AmazonS3Client.AbortMultipartUploadAsync(abortMPURequest);
```

También puede anular todas las cargas multiparte en curso que se iniciaron antes de un periodo de tiempo específico. Esta operación de limpieza resulta útil para anular cargas multiparte que no se finalizaron o que se anularon. Para obtener más información, consulte [Uso de los SDK de AWS (API de alto nivel)](#abort-mpu-high-level).

------
#### [ PHP ]

En este ejemplo, se muestra cómo utilizar una clase de la versión 3 de AWS SDK para PHP a fin de anular una carga multiparte que está en curso. Para obtener más información acerca de la API del SDK de AWS para Ruby, consulte [SDK de AWS para Ruby, versión 2](https://docs.aws.amazon.com/sdkforruby/api/index.html). El ejemplo es el método `abortMultipartUpload()`. 

Para obtener más información acerca de la API del SDK de AWS para Ruby, consulte [SDK de AWS para Ruby, versión 2](https://docs.aws.amazon.com/sdkforruby/api/index.html).

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';
$uploadId = '*** Upload ID of upload to Abort ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Abort the multipart upload.
$s3->abortMultipartUpload([
    'Bucket'   => $bucket,
    'Key'      => $keyname,
    'UploadId' => $uploadId,
]);
```

------