

# Abortar um multipart upload
<a name="abort-mpu"></a>

Após iniciar um multipart upload, você começa a fazer upload de partes. O Amazon S3 armazena essas partes, cria o objeto somente após o carregamento de todas as partes e envia uma solicitação para concluir o carregamento fracionado. Ao receber a solicitação para concluir o multipart upload, o Amazon S3 monta as partes e cria um objeto. Se você não enviar a solicitação de conclusão do carregamento fracionado, o S3 não montará as partes e não criará nenhum objeto. Se você não quiser concluir um carregamento fracionado após o upload das partes, anule o carregamento fracionado.

Você é cobrado por todo o armazenamento associado a partes enviadas por upload. É recomendável sempre concluir ou interromper o carregamento fracionado para remover todas as partes carregadas. Para obter mais informações sobre os preços da , consulte [Multipart upload e definição de preço](mpuoverview.md#mpuploadpricing).

Você também pode interromper um upload incompleto de várias partes usando uma configuração de ciclo de vida do bucket. Para obter mais informações, consulte [Configurar uma política de ciclo de vida de bucket para anular uploads incompletos de várias partes](mpu-abort-incomplete-mpu-lifecycle-config.md).

A seção a seguir mostra como interromper um carregamento fracionado em andamento no Amazon S3 usando a AWS Command Line Interface, a API REST ou os SDKs da AWS.

## Como usar o AWS CLI
<a name="abort-mpu-cli"></a>

Para obter mais informações sobre o uso da AWS CLI para interromper um upload fracionado, consulte [abort-multipart-upload](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/abort-multipart-upload.html) na *Referência de comandos da AWS CLI*.

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

Para obter mais informações sobre o uso da API REST para interromper um multipart upload, consulte [AbortMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html) na *Referência da API do Amazon Simple Storage Service*.

## Uso dos AWS SDKs (API de alto nível)
<a name="abort-mpu-high-level"></a>

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

Para interromper o andamento de multipart uploads usando o AWS SDK para Java, é possível cancelar os uploads que foram iniciados antes de uma data especificada e ainda estão em andamento. Um upload é considerado como em andamento depois que você o inicia até ser concluído ou parado.

Para interromper os multipart uploads, você pode:


|  |  | 
| --- |--- |
| 1 | Criar uma instância da S3Client. | 
| 2 | Use os métodos de cancelamento do cliente passando o nome do bucket e outros parâmetros necessários. | 

**nota**  
Você também pode parar um multipart upload específico. Para obter mais informações, consulte [Uso dos AWS SDKs (API de baixo nível)](#abort-mpu-low-level).

Para ver exemplos de como cancelar multipart uploads com o AWS SDK para Java, consulte [Cancel a multipart upload](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_AbortMultipartUpload_section.html) na *Referência de API do Amazon S3*.

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

O exemplo do C\# a seguir interrompe todos os multipart uploads em andamento que foram iniciados em um bucket específico há uma semana. Para obter informações sobre como configurar e executar exemplos de código, consulte [Conceitos básicos do AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) no *Guia do desenvolvedor do AWS SDK for .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**  
Você também pode parar um multipart upload específico. Para obter mais informações, consulte [Uso dos AWS SDKs (API de baixo nível)](#abort-mpu-low-level). 

------

## Uso dos AWS SDKs (API de baixo nível)
<a name="abort-mpu-low-level"></a>

É possível interromper um multipart upload em andamento chamando o método `AmazonS3.abortMultipartUpload`. Esse método exclui todas as partes que foram carregadas no Amazon S3 e libera os recursos. Você deve fornecer o ID do upload, o nome do bucket e o nome da chave. O código Java de exemplo a seguir demonstra como interromper um multipart upload em andamento.

Para parar um multipart upload, é preciso fornecer o ID de upload e nomes do bucket e da chave usados no upload. Após parar um multipart upload, não é possível usar o ID de upload para fazer upload de partes adicionais. Para obter mais informações sobre multipart uploads do Amazon S3, consulte [Carregar e copiar objetos usando upload fracionado no Amazon S3](mpuoverview.md).

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

Para interromper um multipart upload específico em andamento usando o AWS SDK para Java, use a API de baixo nível para cancelar o upload fornecendo o nome do bucket, a chave do objeto e o ID do upload.

**nota**  
Em vez de cancelar um multipart upload específico, você pode interromper todos os multipart iniciados antes de uma determinada hora que ainda estiverem em andamento. Essa operação de limpeza é útil para interromper multipart uploads antigos que você iniciou, mas não concluiu ou parou. Para obter mais informações, consulte [Uso dos AWS SDKs (API de alto nível)](#abort-mpu-high-level).

Para ver exemplos de como cancelar um multipart upload específico com o AWS SDK para Java, consulte [Cancel a multipart upload](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_AbortMultipartUpload_section.html) na *Referência de API do Amazon S3*.

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

O exemplo do C\# a seguir mostra como parar um multipart upload. Para um exemplo do C\# completo que inclui o código seguinte, consulte [Uso dos AWS SDKs (API de baixo nível)](mpu-upload-object.md#mpu-upload-low-level).

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

Você também pode anular todos os multipart uploads em andamento que foram iniciados antes de um horário específico. Essa operação de limpeza é útil para anular os multipart uploads que não foram concluídos nem anulados. Para obter mais informações, consulte [Uso dos AWS SDKs (API de alto nível)](#abort-mpu-high-level).

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

Este exemplo descreve como usar uma classe da versão 3 do AWS SDK para PHP para anular um carregamento fracionado que está em andamento. Para obter mais informações sobre a API do AWS SDK for Ruby, acesse [AWS SDK for Ruby Version 2](https://docs.aws.amazon.com/sdkforruby/api/index.html). O exemplo do método `abortMultipartUpload()`. 

Para obter mais informações sobre a API do AWS SDK for Ruby, acesse [AWS SDK for Ruby Version 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,
]);
```

------