Interruption d’un chargement partitionné
Après avoir lancé un chargement partitionné, vous commencez à charger les parties. Amazon S3 stocke ces parties et ne crée l’objet qu’une fois que vous avez chargé toutes les parties et envoyé une demande de finalisation du chargement partitionné. Dès réception de la demande de fin de chargement partitionné, Amazon S3 assemble les parties et crée un objet. Si vous n’envoyez pas correctement la demande de finalisation du chargement partitionné, S3 n’assemble pas les différentes parties et ne crée aucun objet. Si vous ne souhaitez pas finaliser un chargement partitionné après avoir chargé différentes parties, vous devez abandonner le chargement partitionné.
Tout le stockage associé aux parties chargées vous est facturé. Il est recommandé de toujours finaliser le chargement partitionné ou d’arrêter le chargement partitionné pour supprimer les parties chargées. Pour de plus amples informations sur la tarification, consultez Chargement partitionné et tarification.
Vous pouvez également arrêter un chargement partitionné incomplet à l’aide d’une configuration de cycle de vie de compartiment. Pour plus d’informations, consultez Configuration d’une configuration de cycle de vie de compartiment pour supprimer les chargements partitionnés incomplets.
La section suivante montre comment arrêter un chargement partitionné en cours dans Amazon S3 à l’aide de l’AWS Command Line Interface, de l’API REST ou des kits AWS SDK.
Pour en savoir plus sur l’utilisation de la AWS CLI pour arrêter un chargement partitionné, consultez abort-multipart-upload dans la Référence des commandes de l’AWS CLI.
Pour en savoir plus sur l’utilisation de l’API REST pour arrêter un chargement partitionné, consultez AbortMultipartUpload dans la Référence des API Amazon Simple Storage Service.
- Java
-
Pour arrêter les chargements partitionnés en cours à l’aide du kit AWS SDK pour Java, vous pouvez abandonner les chargements qui ont été initiés avant une date spécifiée et qui sont toujours en cours. Un chargement est considéré comme étant en cours dès que vous le lancez et jusqu’à ce qu’il soit terminé ou arrêté.
Pour arrêter des chargements partitionnés, vous pouvez :
1 |
Créer une instance S3Client. |
2 |
Utiliser les méthodes d’abandon du client en indiquant le nom du compartiment et les autres paramètres requis. |
Pour voir des exemples illustrant comment abandonner des chargements partitionnés à l’aide du kit AWS SDK pour Java, consultez Annulation d’un chargement partitionné dans la Référence des API Amazon S3.
- .NET
-
L’exemple C# suivant arrête tous les chargements partitionnés en cours initiés sur un compartiment spécifique il y a plus d’une semaine. Pour de plus amples informations sur la configuration et l’exécution des exemples de code, consultez Mise en route avec le kit AWS SDK pour .NET dans le Guide du développeur AWS SDK pour .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);
}
}
}
}
Vous pouvez arrêter un chargement partitionné en cours en appelant la méthode AmazonS3.abortMultipartUpload. Cette méthode supprime toutes les parties qui ont été chargées dans Amazon S3 et libère les ressources. Vous devez fournir l’ID de chargement, le nom du compartiment et le nom de la clé. L’exemple de code Java suivant illustre comment arrêter un chargement partitionné en cours.
Pour arrêter un chargement partitionné, vous fournissez l’ID de chargement, ainsi que les noms de compartiment et de clé utilisés dans le chargement. Après avoir arrêté un chargement partitionné, vous ne pouvez pas utiliser l’ID de chargement pour charger les parties supplémentaires. Pour en savoir plus sur les chargements partitionnés Amazon S3, veuillez consulter Chargement et copie d’objets à l’aide du chargement partitionné dans Amazon S3.
- Java
-
Pour arrêter un chargement partitionné spécifique en cours à l’aide du kit AWS SDK pour Java, vous pouvez utiliser l’API de bas niveau pour abandonner le chargement en fournissant le nom du compartiment, la clé de l’objet et l’ID du chargement.
Au lieu d’abandonner un chargement partitionné spécifique, vous pouvez arrêter tous les chargements partitionnés lancés avant une heure spécifique et qui sont toujours en cours. Cette opération de nettoyage est utile pour arrêter les anciens chargements partitionnés que vous avez initiés mais que vous n’avez pas terminés ou arrêtés. Pour plus d’informations, consultez Utilisation des kits AWS SDK (API de haut niveau).
Pour voir des exemples illustrant comment abandonner un chargement partitionné spécifique à l’aide du kit AWS SDK pour Java, consultez Annulation d’un chargement partitionné dans la Référence des API Amazon S3.
- .NET
-
L’exemple C# suivant montre comment arrêter un chargement partitionné. Pour obtenir un exemple C# complet incluant le code suivant, consultez Utilisation des kits AWS SDK (API de bas niveau).
AbortMultipartUploadRequest abortMPURequest = new AbortMultipartUploadRequest
{
BucketName = existingBucketName,
Key = keyName,
UploadId = initResponse.UploadId
};
await AmazonS3Client.AbortMultipartUploadAsync(abortMPURequest);
Vous pouvez aussi annuler tous les chargements partitionnés en cours démarrés avant un moment spécifique. Cette opération de nettoyage est utile pour abandonner les chargements partitionnés que vous n’avez pas terminés ou interrompus. Pour plus d’informations, consultez Utilisation des kits AWS SDK (API de haut niveau).
- PHP
-
Cet exemple illustre comment utiliser une classe de la version 3 du kit AWS SDK pour PHP pour interrompre un chargement partitionné en cours. Pour de plus amples informations sur l’API du kit AWS SDK pour Ruby, consultez Kit AWS SDK pour Ruby - Version 2. L’exemple de la méthode abortMultipartUpload().
Pour de plus amples informations sur l’API du kit AWS SDK pour Ruby, consultez Kit AWS SDK pour 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,
]);