Suppression d'un seul objet - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Suppression d'un seul objet

Vous pouvez utiliser la console Amazon S3 ou l'API DELETE pour supprimer un seul objet existant d'un compartiment S3. Pour plus d'informations sur la suppression d'objets dans Amazon S3, consultez Suppression d'objets Amazon S3.

Etant donné que tous les objets dans le compartiment S3 entraînent des coûts de stockage, vous devez supprimer ceux dont vous n'avez plus besoin. Par exemple, si vous collectez des fichiers journaux, vous pouvez les supprimer lorsque vous n'en avez plus besoin. Vous pouvez configurer une règle de cycle de vie pour supprimer automatiquement les objets tels que les fichiers journaux. Pour plus d’informations, consultez Définition d'une configuration de cycle de vie sur un compartiment.

Pour en savoir plus sur les fonctions et la tarification d'Amazon S3, veuillez consulter Tarification Amazon S3.

Procédez comme suit pour utiliser la console Amazon S3 pour supprimer un seul objet d'un compartiment.

Avertissement

Lorsque vous supprimez définitivement un objet ou une version d'objet spécifiée dans la console Amazon S3, la suppression ne peut pas être annulée.

Pour supprimer un objet dont le contrôle de version est activé ou suspendu
Note

Si l'ID de version d'un objet dans un compartiment suspendu aux versions est marqué comme telNULL, S3 supprime définitivement l'objet car aucune version précédente n'existe. Toutefois, si un ID de version valide est répertorié pour l'objet dans un compartiment suspendu aux versions, S3 crée un marqueur de suppression pour l'objet supprimé, tout en conservant les versions précédentes de l'objet.

  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Nom du compartiment, choisissez le nom du compartiment à partir duquel vous souhaitez supprimer un objet.

  3. Sélectionnez l'objet, puis choisissez Supprimer.

  4. Pour confirmer la suppression de la liste d'objets sous Objets spécifiés dans la section Supprimer des objets ? zone de texte, entrezdelete.

Pour supprimer définitivement une version d'objet spécifique dans un compartiment activé pour la gestion des versions
Avertissement

Lorsque vous supprimez définitivement une version d'objet spécifique dans Amazon S3, la suppression ne peut pas être annulée.

  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Nom du compartiment, choisissez le nom du compartiment à partir duquel vous souhaitez supprimer un objet.

  3. Sélectionnez l'objets que vous voulez supprimer.

  4. Choisissez le bouton Afficher les versions.

  5. Sélectionnez la version de l'objet, puis choisissez Supprimer.

  6. Pour confirmer la suppression définitive des versions d'objets spécifiques répertoriées sous Objets spécifiés, dans la section Supprimer des objets ? zone de texte, saisissez Supprimer définitivement. Amazon S3 supprime définitivement la version de l'objet spécifique.

Pour supprimer définitivement un objet dans un compartiment Amazon S3 pour lequel le contrôle de version n'est pas activé
Avertissement

Lorsque vous supprimez définitivement un objet dans Amazon S3, la suppression ne peut pas être annulée. De plus, pour tous les compartiments dont le versionnement n'est pas activé, les suppressions sont permanentes.

  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Nom du compartiment, choisissez le nom du compartiment à partir duquel vous souhaitez supprimer un objet.

  3. Sélectionnez l'objet, puis choisissez Supprimer.

  4. Pour confirmer la suppression définitive de l'objet répertorié sous Objets spécifiés, dans la section Supprimer des objets ? zone de texte, entrez Supprimer définitivement.

Note

Si vous rencontrez des problèmes lors de la suppression de votre objet, consultezJe souhaite supprimer définitivement les objets avec la gestion des versions.

Les exemples suivants montrent comment utiliser les AWS SDK pour supprimer un objet d'un bucket. Pour plus d’informations, consultez Objet DELETE dans la Référence d’API Amazon Simple Storage Service.

Si le compartiment est activé pour le contrôle de version S3, vous disposez des options suivantes :

  • Supprimez une version spécifique d'objet en spécifiant un ID de version.

  • Supprimez un objet sans spécifier un ID de version, auquel cas Amazon S3 ajoute un marqueur de suppression à l'objet.

Pour plus d’informations sur la gestion des versions S3, consultez Utilisation de la gestion des versions dans les compartiments S3.

Java
Exemple 1 : Suppression d'un objet (compartiment désactivé pour la gestion des versions)

L'exemple suivant suppose que le compartiment n'est pas activé pour le contrôle de version et qu'il n'a pas des ID de version. Dans la demande de suppression, vous ne spécifiez que la clé d'objet, et pas d'ID de version.

Pour obtenir les instructions sur la création et le test d'un exemple pratique, consultez Test des exemples de code Java Amazon S3.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.DeleteObjectRequest; import java.io.IOException; public class DeleteObjectNonVersionedBucket { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String keyName = "*** Key name ****"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); s3Client.deleteObject(new DeleteObjectRequest(bucketName, keyName)); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
Exemple 2 : Suppression d'un objet (compartiment activé pour la gestion des versions)

L'exemple suivant supprime un objet à partir d'un compartiment activé pour la gestion des versions. L'exemple supprime une version d'objet spécifique en spécifiant le nom de la clé d'objet et l'ID de version.

Cet exemple effectue les opérations suivantes :

  1. Ajoute un exemple d'objet au compartiment. Amazon S3 renvoie l'ID de version de l'objet nouvellement ajouté. L'exemple utilise l'ID de version dans la demande de suppression.

  2. Supprime la version d'objet spécifique en spécifiant le nom de la clé d'objet et l'ID de version. S'il n'existe pas d'autres versions de cet objet, Amazon S3 supprime la totalité de l'objet. Sinon, Amazon S3 supprime uniquement la version spécifiée.

    Note

    Vous pouvez également obtenir les ID de version d'un objet en envoyant une demande ListVersions.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.BucketVersioningConfiguration; import com.amazonaws.services.s3.model.DeleteVersionRequest; import com.amazonaws.services.s3.model.PutObjectResult; import java.io.IOException; public class DeleteObjectVersionEnabledBucket { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String keyName = "*** Key name ****"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); // Check to ensure that the bucket is versioning-enabled. String bucketVersionStatus = s3Client.getBucketVersioningConfiguration(bucketName).getStatus(); if (!bucketVersionStatus.equals(BucketVersioningConfiguration.ENABLED)) { System.out.printf("Bucket %s is not versioning-enabled.", bucketName); } else { // Add an object. PutObjectResult putResult = s3Client.putObject(bucketName, keyName, "Sample content for deletion example."); System.out.printf("Object %s added to bucket %s\n", keyName, bucketName); // Delete the version of the object that we just created. System.out.println("Deleting versioned object " + keyName); s3Client.deleteVersion(new DeleteVersionRequest(bucketName, keyName, putResult.getVersionId())); System.out.printf("Object %s, version %s deleted\n", keyName, putResult.getVersionId()); } } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
.NET

Les exemples suivants montrent comment supprimer un objet à partir d'un compartiment activé pour la gestion des versions et d'un compartiment non activé pour la gestion des versions. Pour plus d’informations sur la gestion des versions S3, consultez Utilisation de la gestion des versions dans les compartiments S3.

Exemple Suppression d'un objet d'un compartiment désactivé pour la gestion des versions

L'exemple C# suivant supprime un objet à partir d'un compartiment désactivé pour la gestion des versions. Comme l'exemple suppose que les objets n'ont pas d'ID de version, ne spécifiez pas d'ID de version. Spécifiez uniquement la clé d'objet.

Pour obtenir des informations sur la façon de créer et de tester un exemple pratique, consultez Exécution des exemples de code .NET Amazon S3.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class DeleteObjectNonVersionedBucketTest { private const string bucketName = "*** bucket name ***"; private const string keyName = "*** object key ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { client = new AmazonS3Client(bucketRegion); DeleteObjectNonVersionedBucketAsync().Wait(); } private static async Task DeleteObjectNonVersionedBucketAsync() { try { var deleteObjectRequest = new DeleteObjectRequest { BucketName = bucketName, Key = keyName }; Console.WriteLine("Deleting an object"); await client.DeleteObjectAsync(deleteObjectRequest); } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered on server. Message:'{0}' when deleting an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when deleting an object", e.Message); } } } }
Exemple Suppression d'un objet d'un compartiment activé pour la gestion des versions

L'exemple C# suivant supprime un objet d'un compartiment activé pour la gestion des versions. L'exemple supprime une version de l'objet en spécifiant le nom de la clé d'objet et l'ID de version.

Le code exécute les tâches suivantes :

  1. Active le contrôle de version S3 sur un compartiment que vous spécifiez (si le contrôle de version S3 est déjà activé, cette opération est sans effet).

  2. Ajoute un exemple d'objet au compartiment. En réponse, Amazon S3 renvoie l'ID de version de l'objet nouvellement ajouté. L'exemple utilise l'ID de version dans la demande de suppression.

  3. Supprime l'exemple d'objet en spécifiant le nom de la clé d'objet et l'ID de version.

    Note

    Vous pouvez également obtenir l'ID de version d'un objet en envoyant une demande ListVersions.

    var listResponse = client.ListVersions(new ListVersionsRequest { BucketName = bucketName, Prefix = keyName });

Pour obtenir des informations sur la façon de créer et de tester un exemple pratique, consultez Exécution des exemples de code .NET Amazon S3.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class DeleteObjectVersion { private const string bucketName = "*** versioning-enabled bucket name ***"; private const string keyName = "*** Object Key Name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { client = new AmazonS3Client(bucketRegion); CreateAndDeleteObjectVersionAsync().Wait(); } private static async Task CreateAndDeleteObjectVersionAsync() { try { // Add a sample object. string versionID = await PutAnObject(keyName); // Delete the object by specifying an object key and a version ID. DeleteObjectRequest request = new DeleteObjectRequest { BucketName = bucketName, Key = keyName, VersionId = versionID }; Console.WriteLine("Deleting an object"); await client.DeleteObjectAsync(request); } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered on server. Message:'{0}' when deleting an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when deleting an object", e.Message); } } static async Task<string> PutAnObject(string objectKey) { PutObjectRequest request = new PutObjectRequest { BucketName = bucketName, Key = objectKey, ContentBody = "This is the content body!" }; PutObjectResponse response = await client.PutObjectAsync(request); return response.VersionId; } } }
PHP

Cet exemple montre comment utiliser les classes de la version 3 de AWS SDK for PHP pour supprimer un objet d'un bucket non versionné. Pour en savoir plus sur la suppression d'un objet à partir d'un compartiment activé pour le contrôle de version, consultez Utilisation de l'API REST.

Cet exemple part du principe que vous suivez déjà les instructions pour Utilisation du kit AWS SDK for PHP et exécution d'exemples PHP et que le kit AWS SDK for PHP est correctement installé. Pour en savoir plus sur l'exécution des exemples PHP dans ce guide, consultez Exécution d'exemples PHP.

L'exemple de PHP suivant supprime un objet à partir d'un compartiment. Comme cet exemple illustre la façon de supprimer des objets des compartiments désactivés pour le contrôle de version, il fournit uniquement le nom du compartiment et la clé d'objet (pas un ID de version) dans la demande de suppression.

<?php require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\S3\Exception\S3Exception; $bucket = '*** Your Bucket Name ***'; $keyname = '*** Your Object Key ***'; $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); // 1. Delete the object from the bucket. try { echo 'Attempting to delete ' . $keyname . '...' . PHP_EOL; $result = $s3->deleteObject([ 'Bucket' => $bucket, 'Key' => $keyname ]); if ($result['DeleteMarker']) { echo $keyname . ' was deleted or does not exist.' . PHP_EOL; } else { exit('Error: ' . $keyname . ' was not deleted.' . PHP_EOL); } } catch (S3Exception $e) { exit('Error: ' . $e->getAwsErrorMessage() . PHP_EOL); } // 2. Check to see if the object was deleted. try { echo 'Checking to see if ' . $keyname . ' still exists...' . PHP_EOL; $result = $s3->getObject([ 'Bucket' => $bucket, 'Key' => $keyname ]); echo 'Error: ' . $keyname . ' still exists.'; } catch (S3Exception $e) { exit($e->getAwsErrorMessage()); }
Javascript

Cet exemple montre comment utiliser la version 3 de AWS SDK for JavaScript pour supprimer un objet. Pour plus d'informations sur, AWS SDK for JavaScript voirUtilisation de l AWS SDK for JavaScript.

import { DeleteObjectCommand } from "@aws-sdk/client-s3"; import { s3Client } from "./libs/s3Client.js" // Helper function that creates Amazon S3 service client module. export const bucketParams = { Bucket: "BUCKET_NAME", Key: "KEY" }; export const run = async () => { try { const data = await s3Client.send(new DeleteObjectCommand(bucketParams)); console.log("Success. Object deleted.", data); return data; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Pour supprimer un objet par demande, utilisez l'API DELETE. Pour plus d’informations, consultez Objet DELETE. Pour plus d'informations sur l'utilisation de la CLI pour supprimer un objet, consultez delete-object.

Vous pouvez utiliser les AWS SDK pour supprimer un objet. Toutefois, si l'application l'exige, vous pouvez envoyer directement des demandes REST. Pour plus d’informations, consultez Objet DELETE dans la Référence d’API Amazon Simple Storage Service.