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 du cycle de vie S3 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, cette opération est irréversible.

Pour supprimer un objet pour lequel la gestion des versions est activée ou suspendue
Note

Si l’ID de version d’un objet dans un compartiment pour lequel la gestion des versions est suspendue, est marqué comme NULL, S3 supprime définitivement l’objet, car il n’existe aucune version précédente. Toutefois, si un ID de version valide est répertorié pour l’objet dans un compartiment pour lequel la gestion des versions est suspendue, 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 le volet de navigation de gauche, choisissez General Purpose buckets ou Directory buckets.

  3. Dans la liste des compartiments, choisissez le nom du compartiment dont vous souhaitez supprimer un objet.

  4. Sélectionnez l’objet, puis choisissez Supprimer.

  5. Pour confirmer la suppression de la liste d’objets sous Objets spécifiés dans la zone de texte Supprimer les objets ?, entrez delete.

Pour supprimer une version d’objet spécifique dans un compartiment pour lequel la gestion des versions est activée
Avertissement

Lorsque vous supprimez définitivement une version d’objet spécifique dans Amazon S3, cette opération est irréversible.

  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 zone de texte Supprimer les objets ?, entrez Supprimer définitivement. Amazon S3 supprime définitivement cette version spécifique de l’objet.

Pour supprimer définitivement un objet dans un compartiment Amazon S3 pour lequel la gestion des versions n’est pas activée
Avertissement

Lorsque vous supprimez définitivement un objet dans Amazon S3, cette opération est irréversible. De plus, pour tous les compartiments pour lesquels la gestion des versions n’est pas activée, 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 le volet de navigation de gauche, choisissez Compartiments à usage général.

  3. Dans la liste des compartiments, choisissez le nom du compartiment dont vous souhaitez supprimer un objet.

  4. Sélectionnez l’objet, puis choisissez Supprimer.

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

Note

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

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 le AWS SDKs 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.

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

Si le compartiment est activé pour la gestion des versions 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 à la gestion des versions S3.

Pour plus d'exemples, et des exemples dans d'autres langages, consultez Utiliser DeleteObject avec un AWS SDK ou une CLI dans le manuel de référence de l'API Amazon 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 de travail, voir Getting Started dans le guide du AWS SDK pour 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 à la gestion des versions 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 version IDs, vous ne spécifiez donc pas de version IDs. 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 .NET dans AWS le Guide du développeur du SDK pour .NET.

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 la gestion des versions S3 sur un compartiment que vous spécifiez (si la gestion des versions S3 est déjà activée, 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 .NET dans AWS le Guide du développeur du SDK pour .NET.

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 pour 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 la gestion des versions, consultez Utilisation de l'API REST.

Pour plus d'informations sur l'API AWS SDK for Ruby, consultez AWS SDK for Ruby - Version 2.

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 la gestion des versions, 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();