Eliminazione di un singolo oggetto - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Eliminazione di un singolo oggetto

Puoi utilizzare la console Amazon S3 o eliminare un singolo oggetto esistente da un bucket S3. DELETE API Per ulteriori informazioni su come eliminare gli oggetti in Amazon S3, consulta Eliminazione di oggetti Amazon S3 .

Tutti gli oggetti nel bucket S3 sono soggetti a costi di storage. È pertanto necessario eliminare quelli di cui non si ha più bisogno. Se ad esempio si esegue la raccolta di file di log, è una buona idea eliminarli quando non sono più necessari. È possibile impostare una regola del ciclo di vita per eliminare automaticamente oggetti come i file di log. Per ulteriori informazioni, consulta Impostazione di una configurazione del ciclo di vita S3 su un bucket.

Per informazioni sulle funzionalità e sui prezzi di Amazon S3, consulta Prezzi di Amazon S3.

Segui questi passaggi per utilizzare la console di Amazon S3 per eliminare un singolo oggetto da un bucket.

avvertimento

Quando elimini definitivamente un oggetto o una versione dell'oggetto specificata nella console Amazon S3, l'eliminazione non può essere annullata.

Per eliminare un oggetto con il controllo delle versioni abilitato o sospeso
Nota

Se l'ID di versione per un oggetto in un bucket con versione sospesa è contrassegnato comeNULL, S3 elimina definitivamente l'oggetto poiché non esistono versioni precedenti. Tuttavia, se un ID di versione valido è elencato per l'oggetto in un bucket con versione sospesa, S3 crea un marker di eliminazione per l'oggetto eliminato, mantenendo le versioni precedenti dell'oggetto.

  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nell'elenco Bucket name (Nome bucket) scegliere il nome del bucket dal quale si desidera eliminare un oggetto.

  3. Seleziona l'oggetto, quindi scegli Elimina.

  4. Per confermare l'eliminazione dell'elenco degli oggetti in Oggetti specificati in Elimina oggetti? casella di testo, immetteredelete.

Per eliminare definitivamente una versione specifica dell'oggetto in un bucket abilitato al controllo delle versioni
avvertimento

Quando elimini definitivamente una versione specifica dell'oggetto in Amazon S3, l'eliminazione non può essere annullata.

  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nell'elenco Bucket name (Nome bucket) scegliere il nome del bucket dal quale si desidera eliminare un oggetto.

  3. Seleziona l'oggetto da eliminare.

  4. Scegli l'opzione Mostra versioni.

  5. Seleziona la versione dell'oggetto, quindi scegli Elimina.

  6. Per confermare l'eliminazione permanente delle versioni specifiche degli oggetti elencate in Oggetti specificati, nella sezione Eliminare oggetti? casella di testo, inserisci Elimina definitivamente. Amazon S3 elimina definitivamente la versione specifica dell'oggetto.

Per eliminare definitivamente un oggetto in un bucket Amazon S3 che non ha il controllo delle versioni abilitato
avvertimento

Quando elimini definitivamente un oggetto in Amazon S3, l'eliminazione non può essere annullata. Inoltre, per tutti i bucket senza il controllo delle versioni abilitato, le eliminazioni sono permanenti.

  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nell'elenco Bucket name (Nome bucket) scegliere il nome del bucket dal quale si desidera eliminare un oggetto.

  3. Seleziona l'oggetto, quindi scegli Elimina.

  4. Per confermare l'eliminazione permanente dell'oggetto elencato in Oggetti specificati, nella sezione Eliminare oggetti? casella di testo, inserisci elimina definitivamente.

Nota

Se riscontri problemi con l'eliminazione dell'oggetto, consultaVoglio eliminare definitivamente gli oggetti con il controllo delle versioni abilitato.

Per eliminare un oggetto per richiesta, utilizzare il DELETEAPI. Per ulteriori informazioni, vedere DELETEObject. Per ulteriori informazioni sull'utilizzo di CLI per eliminare un oggetto, vedere delete-object.

È possibile utilizzare il AWS SDKs per eliminare un oggetto. Tuttavia, se l'applicazione lo richiede, è possibile inviare REST richieste direttamente. Per ulteriori informazioni, consulta DELETEObject in Amazon Simple Storage Service API Reference.

Gli esempi seguenti mostrano come utilizzare il AWS SDKs per eliminare un oggetto da un bucket. Per ulteriori informazioni, consulta DELETEObject in Amazon Simple Storage Service API Reference

Se hai la funzione Controllo delle versioni S3 abilitata sul bucket, sono disponibili le seguenti opzioni:

  • Eliminazione di una versione specifica di un oggetto specificando un ID versione.

  • Elimina un oggetto senza specificare l'ID versione, nel cui caso Amazon S3 aggiunge un contrassegno di eliminazione all'oggetto.

Per ulteriori informazioni sulla funzione Controllo delle versioni S3, consulta Conservazione di più versioni di oggetti con S3 Versioning.

Java
Esempio 1: Eliminazione di un oggetto (bucket senza versione)

L'esempio seguente presuppone che il bucket non sia abilitato al controllo delle versioni e che l'oggetto non abbia alcuna versione. IDs Nella richiesta di eliminazione, si specifica solo la chiave dell'oggetto e non un ID versione.

Per istruzioni su come creare e testare un esempio funzionante, consulta Getting Started nella Developer Guide. AWS SDK for Java

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(); } } }
Esempio 2: Eliminazione di un oggetto (bucket con versione)

Nell'esempio seguente viene eliminato un oggetto da un bucket con versione. L'esempio elimina una specifica versione dell'oggetto, specificando il nome della chiave dell'oggetto e l'ID versione.

Inoltre, vengono effettuate le seguenti operazioni:

  1. Aggiunge un oggetto campione al bucket. Amazon S3 restituisce l'ID versione del nuovo oggetto aggiunto. L'esempio utilizza questo ID versione nella richiesta di eliminazione.

  2. Elimina la versione dell'oggetto, specificando sia il nome della chiave dell'oggetto sia un ID versione. Se non sono disponibili altre versioni dell'oggetto, Amazon S3 elimina l'oggetto interamente. In caso contrario, Amazon S3 elimina solo la versione specificata.

    Nota

    È possibile ottenere la versione IDs di un oggetto inviando una ListVersions richiesta.

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

Gli esempi seguenti mostrano come eliminare un oggetto sia da bucket con versione sia da bucket senza versione. Per ulteriori informazioni sulla funzione Controllo delle versioni S3, consulta Conservazione di più versioni di oggetti con S3 Versioning.

Esempio Eliminazione di un oggetto da un bucket senza versione

Nell'esempio di codice C# seguente viene eliminato un oggetto da un bucket senza versione. L'esempio presuppone che gli oggetti non abbiano una versioneIDs, quindi non viene specificata la versioneIDs. Specifichi solo la chiave dell'oggetto.

Per informazioni sulla configurazione e l'esecuzione degli esempi di codice, consulta Getting Started with the AWS SDK for. NETnella AWS SDKforma. NETGuida per gli sviluppatori.

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); } } } }
Esempio Eliminazione di un oggetto da un bucket con versione

Nell'esempio C# seguente viene eliminato un oggetto da un bucket con versione. Elimina una specifica versione dell'oggetto, specificando il nome della chiave dell'oggetto e l'ID versione.

Il codice esegue le attività sotto elencate:

  1. Abilita la funzione Controllo delle versioni S3 su un bucket specificato (se la funzione Versione multiple di S3 è già abilitata, tale operazione non ha effetti).

  2. Aggiunge un oggetto campione al bucket. In risposta a questa attività, Amazon S3 restituisce l'ID versione del nuovo oggetto aggiunto. L'esempio utilizza questo ID versione nella richiesta di eliminazione.

  3. Elimina l'oggetto campione, specificando sia il nome della chiave dell'oggetto sia un ID versione.

    Nota

    È possibile ottenere l'ID versione di un oggetto anche inviando una richiesta ListVersions.

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

Per informazioni sulla configurazione e l'esecuzione degli esempi di codice, consulta Getting Started with the AWS SDK for. NETnella AWS SDKforma. NETGuida per gli sviluppatori.

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

Questo esempio mostra come utilizzare le classi della versione 3 di AWS SDK for PHP per eliminare un oggetto da un bucket senza versioni. Per informazioni sull'eliminazione di un oggetto da un bucket con versione, consulta Usando il REST API.

Per ulteriori informazioni su AWS SDK for RubyAPI, vai a AWS SDKfor Ruby - Versione 2.

L'PHPesempio seguente elimina un oggetto da un bucket. Poiché questo esempio mostra come eliminare gli oggetti da bucket senza versione, questo fornisce solo il nome bucket e la chiave dell'oggetto (non un ID versione) nella richiesta di eliminazione.

<?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();