Interruzione di un caricamento in più parti
Dopo aver avviato un caricamento in più parti, le parti vengono caricate. Amazon S3 memorizza queste parti e crea l'oggetto solo dopo aver caricato tutte le parti e aver 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 la richiesta di caricamento multiparte completa non viene inviata correttamente, S3 non assembla le parti e non crea alcun oggetto. Se si desidera non completare un caricamento multiparte dopo aver caricato le parti, è necessario interrompere il caricamento multiparte.
Ti viene addebitato tutto lo spazio di storage associato alle parti caricate. Si consiglia di completare sempre il caricamento multiparte o di interromperlo per rimuovere le parti caricate. Per ulteriori informazioni sui prezzi , consulta 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 arrestare un caricamento multiparte in corso in Amazon S3 usando AWS Command Line Interface, la REST API o gli SDK AWS.
Per ulteriori informazioni sull'utilizzo della AWS CLI per interrompere un caricamento in più parti, consulta abort-multipart-upload nel Riferimento ai comandi della AWS CLI.
Per ulteriori informazioni sull'utilizzo di REST API per interrompere un caricamento in più parti, consulta abortMultiPartUpload nella Documentazione di riferimento delle API di Amazon Simple Storage Service.
- Java
-
Per arrestare i caricamenti in più parti in esecuzione utilizzando AWS SDK per Java, puoi interrompere i caricamenti avviati prima di una data specificata e che sono ancora in corso. Un caricamento è considerato in esecuzione dopo l'avvio e finché non viene completato o interrotto.
Per arrestare i caricamenti in più parti, puoi:
1 |
Creare un’istanza S3Client. |
2 |
Utilizzare i metodi di interruzione del client passando il nome del bucket e altri parametri richiesti. |
Per esempi su come interrompere i caricamenti in più parti con AWS SDK per Java, consulta Annullamento di un caricamento in più parti nella Guida di riferimento delle API di Amazon S3.
- .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 Nozioni di base sull'SDK AWS per .NET nella Guida per gli sviluppatori di SDK AWS per .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);
}
}
}
}
È 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 multiparte in Amazon S3.
- Java
-
Per arrestare uno specifico caricamento in più parti in esecuzione utilizzando AWS SDK per Java, puoi utilizzare l’API di basso livello per interrompere il caricamento fornendo il nome del bucket, la chiave dell’oggetto e l’ID di caricamento.
Invece di interrompere un caricamento in più parti specifico, è possibile arrestare 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 degli SDK AWS (API di alto livello).
Per esempi su come interrompere un caricamento in più parti specifico con AWS SDK per Java, consulta Annullamento di un caricamento in più parti nella Guida di riferimento delle API di Amazon S3.
- .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 Utilizzo degli SDK AWS (API di basso livello).
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 degli SDK AWS (API di alto livello).
- PHP
-
Questo esempio mostra come utilizzare una classe dalla versione 3 di AWS SDK per PHP per interrompere un caricamento in più parti in corso. Per ulteriori informazioni sull'API SDK AWS per Ruby, consulta SDK AWS per Ruby - versione 2. Nell'esempio il metodo abortMultipartUpload().
Per ulteriori informazioni sull'API SDK AWS per Ruby, consulta SDK AWS per Ruby - versione 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,
]);