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 DELETE API 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 Configuration d'une configuration S3 Lifecycle sur un bucket.

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.

Pour supprimer un objet par demande, utilisez le DELETEAPI. Pour plus d'informations, consultez la section DELETEObjet. Pour plus d'informations sur l'utilisation du CLI pour supprimer un objet, consultez la section delete-object.

Vous pouvez utiliser le AWS SDKs pour supprimer un objet. Toutefois, si votre application l'exige, vous pouvez envoyer des REST demandes directement. Pour plus d'informations, consultez DELETEObject dans le manuel Amazon Simple Storage Service API Reference.

Les exemples suivants montrent comment vous pouvez utiliser le AWS SDKs pour supprimer un objet d'un compartiment. Pour plus d'informations, consultez DELETEObject dans le manuel Amazon Simple Storage Service API Reference

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 Conservation de plusieurs versions d'objets grâce au versionnement S3.

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

L'exemple suivant suppose que le bucket n'est pas activé pour la gestion des versions et que l'objet n'a aucune version. IDs Dans la demande de suppression, vous ne spécifiez que la clé d'objet, et pas d'ID de version.

Pour obtenir des instructions sur la création et le test d'un échantillon fonctionnel, voir Getting Started dans le guide du AWS SDK for Java développeur.

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 obtenir la version IDs d'un objet en envoyant une ListVersions demande.

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 Conservation de plusieurs versions d'objets grâce au versionnement 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. L'exemple suppose que les objets n'ont pas de versionIDs, vous ne spécifiez donc pas de versionIDs. Spécifiez uniquement la clé d'objet.

Pour plus d'informations sur la configuration et l'exécution des exemples de code, consultez Getting Started with the AWS SDK for. NETdans le AWS SDKfour. NETGuide du développeur.

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 plus d'informations sur la configuration et l'exécution des exemples de code, consultez Getting Started with the AWS SDK for. NETdans le AWS SDKfour. NETGuide du développeur.

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 En utilisant le REST API.

Pour plus d'informations sur le AWS SDK for RubyAPI, rendez-vous sur AWS SDKfor Ruby - Version 2.

L'PHPexemple suivant supprime un objet 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
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();