Interruzione di un caricamento in più parti - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Interruzione di un caricamento in più parti

Dopo aver avviato un caricamento in più parti, le parti vengono caricate. Amazon S3 archivia queste parti e crea l'oggetto solo dopo aver caricato tutte le parti e inviato una richiesta per completare il caricamento multiparte. Quando riceve la richiesta di completamento del caricamento in più parti, Amazon S3 assembla le parti e crea un oggetto. Se non invii correttamente la richiesta di caricamento multiparte completa, S3 non assembla le parti e non crea alcun oggetto. Se non desideri completare un caricamento in più parti dopo aver caricato le parti, devi interrompere il caricamento in più parti.

Ti viene addebitato tutto lo spazio di storage associato alle parti caricate. Si consiglia di completare sempre il caricamento in più parti o di interrompere il caricamento in più parti per rimuovere le parti caricate. Per ulteriori informazioni sui prezzi, consultare Caricamento in più parti e prezzi.

È inoltre possibile interrompere un caricamento in più parti incompleto utilizzando una configurazione del ciclo di vita del bucket. Per ulteriori informazioni, consulta Configurazione del ciclo di vita del bucket per l'eliminazione dei caricamenti in più parti incompleti.

La sezione seguente mostra come interrompere un caricamento multiparte in corso in Amazon S3 utilizzando AWS Command Line Interface, o. REST API AWS SDKs

Per ulteriori informazioni sull'utilizzo di AWS CLI per interrompere un caricamento in più parti, vedere abort-multipart-uploadnella Guida ai AWS CLI comandi.

Per ulteriori informazioni sull'utilizzo di REST API per interrompere un caricamento AbortMultipartUploadin più parti, consulta Amazon Simple Storage Service API Reference.

Java

La classe TransferManager fornisce il metodo abortMultipartUploads per arrestare i caricamenti in più parti in corso. Un caricamento è considerato in esecuzione dopo l'avvio e finché non viene completato o interrotto. Fornisci un Date valore e questo API interrompe tutti i caricamenti multiparte su quel bucket che sono stati avviati prima di quello specificato Date e sono ancora in corso.

Le seguenti attività mostrano in dettaglio come utilizzare le classi Java di alto livello per interrompere i caricamenti in più parti.

Processo di interruzione dei caricamenti multiparte di alto livello API

1

Crea un'istanza della classe TransferManager.

2

Esegui il metodo TransferManager.abortMultipartUploads passando il nome del bucket e un valore Date.

Il codice Java seguente interrompe l'esecuzione di tutti i caricamenti in più parti avviati su un bucket specifico più di una settimana prima. Per istruzioni su come creare e testare un esempio funzionante, consulta Getting Started nella Developer Guide. AWS SDK for Java

import java.util.Date; import com.amazonaws.AmazonClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3.transfer.TransferManager; public class AbortMPUUsingHighLevelAPI { public static void main(String[] args) throws Exception { String existingBucketName = "*** Provide existing bucket name ***"; TransferManager tm = new TransferManager(new ProfileCredentialsProvider()); int sevenDays = 1000 * 60 * 60 * 24 * 7; Date oneWeekAgo = new Date(System.currentTimeMillis() - sevenDays); try { tm.abortMultipartUploads(existingBucketName, oneWeekAgo); } catch (AmazonClientException amazonClientException) { System.out.println("Unable to upload file, upload was aborted."); amazonClientException.printStackTrace(); } } }
Nota

È anche possibile interrompere un caricamento in più parti specifico. Per ulteriori informazioni, consulta Utilizzo del AWS SDKs (di basso livelloAPI).

.NET

L'esempio di codice C# seguente interrompe l'esecuzione di tutti i caricamenti in più parti avviati su un bucket nella settimana precedente. Per informazioni sulla configurazione e l'esecuzione degli esempi di codice, consulta Getting Started with the AWS SDK for. NETnella AWS SDKforma. NETGuida per gli sviluppatori.

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

È anche possibile interrompere un caricamento in più parti specifico. Per ulteriori informazioni, consulta Utilizzo del AWS SDKs (di basso livelloAPI).

È possibile interrompere l'esecuzione di un caricamento in più parti chiamando il metodo AmazonS3.abortMultipartUpload. Questo metodo elimina tutte le parti che sono state caricate in Amazon S3 e libera le risorse. È necessario specificare l'ID di caricamento, il nome del bucket e il nome della chiave. Il seguente esempio di codice Java mostra come interrompere l'esecuzione di un caricamento in più parti.

Per interrompere un caricamento in più parti, devi fornire l'ID di caricamento e i nomi di bucket e chiave utilizzati nel caricamento. Dopo aver interrotto un caricamento in più parti, non puoi utilizzare l'ID di caricamento per caricare altre parti. Per ulteriori informazioni sui caricamenti in più parti di Amazon S3, consulta Caricamento e copia di oggetti utilizzando il caricamento in più parti.

Java

Nell'esempio di codice Java seguente viene interrotto un caricamento in più parti in corso.

InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest(existingBucketName, keyName); InitiateMultipartUploadResult initResponse = s3Client.initiateMultipartUpload(initRequest); AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider()); s3Client.abortMultipartUpload(new AbortMultipartUploadRequest( existingBucketName, keyName, initResponse.getUploadId()));
Nota

Invece di interrompere un caricamento in più parti specifico, è possibile interrompere tutti i caricamenti in più parti avviati prima di un orario specifico che sono ancora in corso. Questa operazione di pulizia è utile per interrompere caricamenti in più parti obsoleti che sono stati avviati ma che non sono stati completati o interrotti. Per ulteriori informazioni, consulta Utilizzo di AWS SDKs (di alto livelloAPI).

.NET

L'esempio di codice #C seguente mostra come interrompere un caricamento in più parti. Per un esempio in C# completo che include il codice seguente, consulta Usando il (di basso livello AWS SDKs) API.

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

Puoi anche interrompere tutti i caricamenti in più parti in corso che sono stati avviati prima di un determinato orario. Questa operazione di pulizia è utile per interrompere caricamenti in più parti che non sono stati completati o interrotti. Per ulteriori informazioni, consulta Utilizzo di AWS SDKs (di alto livelloAPI).

PHP

Questo esempio mostra come utilizzare una classe dalla versione 3 di AWS SDK for PHP per interrompere un caricamento in più parti in corso. Per ulteriori informazioni su AWS SDK for RubyAPI, vai a AWS SDKfor Ruby - Versione 2. Nell'esempio il metodo abortMultipartUpload().

Per maggiori informazioni su AWS SDK for RubyAPI, vai a AWS SDKfor Ruby - Version 2.

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, ]);