Eliminazione di un bucket - 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 bucket

Un bucket Amazon S3 vuoto può essere eliminato. Per informazioni sullo svuotamento di un secchio, consulta. Svuotamento di un bucket

Puoi eliminare un bucket utilizzando la console Amazon S3, l'AWS CLI(), AWS Command Line Interface la o AWS SDKs l'API REST di Amazon S3.

Importante

Prima di eliminare un bucket, considera quanto segue:

  • I nomi dei bucket sono univoci. Se elimini un bucket, un altro AWS utente può utilizzare il nome per un nuovo bucket e potenzialmente ricevere richieste destinate al bucket eliminato. Se vuoi evitare che ciò accada o se desideri continuare a utilizzare lo stesso nome di bucket, non eliminare il bucket. Ti consigliamo di svuotare il bucket e conservarlo, bloccando invece qualsiasi richiesta relativa al bucket, se necessario.

  • Se il bucket ospita un sito Web statico e hai creato e configurato una zona ospitata di Amazon Route 53 come descritto in Tutorial: Configurazione di un sito Web statico utilizzando un dominio personalizzato registrato con Route 53, devi ripulire le impostazioni della zona ospitata di Route 53 associate al bucket. Per ulteriori informazioni, consulta Passaggio 2: eliminare la zona ospitata Route 53.

  • Se il bucket riceve dati di log da Elastic Load Balancing (ELB), ti consigliamo di interrompere la consegna dei log ELB al bucket prima di eliminarlo. Dopo l'eliminazione del bucket, se un altro utente crea un bucket utilizzando lo stesso nome, i dati di log potrebbero potenzialmente essere consegnati a quel bucket. Per informazioni sui log di accesso ELB, consulta i log di accesso per il Classic Load Balancer nella User Guide for Classic Load Balancers e i log di accesso per l'Application Load Balancer nella User Guide for Application Load Balancer.

Risoluzione dei problemi

Se non riesci a eliminare un bucket Amazon S3, considera quanto segue:

  • Assicurati che il bucket sia vuoto: puoi eliminare i bucket solo se non contengono oggetti. Assicurati che il secchio sia vuoto. Per informazioni sullo svuotamento di un secchio, consulta. Svuotamento di un bucket

  • Assicurati che non ci siano punti di accesso collegati: puoi eliminare i bucket solo se non hanno punti di accesso S3 o punti di accesso multiregionali collegati allo stesso account. Prima di eliminare il bucket, elimina tutti gli access point dello stesso account collegati al bucket.

  • AWS Organizations policy di controllo dei servizi (SCPs) e politiche di controllo delle risorse (RCPs) — SCPs e RCPs puoi negare l'autorizzazione di eliminazione su un bucket. Per ulteriori informazioni, consulta le policy di controllo dei servizi e le policy di controllo delle risorse nella Guida all'utente AWS Organizations .

  • s3:DeleteBucketautorizzazioni: se non riesci a eliminare un bucket, contatta l'amministratore IAM per confermare di disporre delle autorizzazioni. s3:DeleteBucket Per informazioni su come visualizzare o aggiornare le autorizzazioni IAM, consulta la sezione Modifica delle autorizzazioni per un utente IAM nella Guida per l'utente IAM. Per informazioni sulla risoluzione dei problemi, consulta Risolvi i problemi relativi all'accesso negato (403 Forbidden) errori in Amazon S3.

  • s3:DeleteBucket Denydichiarazione: se disponi di s3:DeleteBucket autorizzazioni nella tua policy IAM e non puoi eliminare un bucket, la policy del bucket potrebbe includere un'istruzione per. Deny s3:DeleteBucket Per impostazione predefinita, i bucket creati da AWS Elastic Beanstalk hanno una politica contenente questa dichiarazione. Prima di poter eliminare il bucket, è necessario eliminare questa istruzione o la policy del bucket.

Prerequisiti

Prima di poter eliminare un bucket, è necessario svuotarlo. Per informazioni sullo svuotamento di un secchio, consulta. Svuotamento di un bucket

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

  2. Nel riquadro di navigazione a sinistra, scegli Bucket per uso generico o Bucket Directory.

  3. Nell'elenco dei bucket, seleziona il pulsante di opzione accanto al nome del bucket che desideri eliminare, quindi scegli Elimina nella parte superiore della pagina.

  4. Nella pagina Delete bucket (Elimina bucket) conferma che desideri eliminare il bucket inserendone il nome nel campo di testo e quindi scegli Delete bucket (Elimina bucket).

    Nota

    Se il bucket contiene oggetti, svuota il bucket prima di eliminarlo scegliendo il pulsante Svuota bucket nell'avviso di errore Questo bucket is not empty e seguendo le istruzioni nella pagina Svuota bucket. Quindi tornare alla pagina Delete bucket (Elimina bucket) ed eliminare il bucket.

  5. Per verificare di aver eliminato il bucket, apri l'elenco dei bucket generici e inserisci il nome del bucket che hai eliminato. Se il bucket non appare tra i risultati, la cancellazione si è conclusa correttamente.

L'esempio seguente mostra come eliminare un bucket utilizzando. AWS SDK for Java Il codice elimina prima tutti gli oggetti nel bucket, quindi elimina il bucket. Per informazioni sull'utilizzo di altri AWS SDKs, consulta Tools for Amazon Web Services.

Java

I seguenti Java esempio elimina un bucket che contiene oggetti. Tale codice elimina tutti gli oggetti e quindi il bucket stesso. L'esempio di codice vale sia per i bucket che supportano la funzione Controllo delle versioni che per quelli che non la supportano.

Nota

Per i bucket che non supportano la funzione Controllo delle versioni, è possibile eliminare direttamente tutti gli oggetti e poi il bucket stesso. Per i bucket che supportano la funzione Controllo delle versioni, è necessario eliminare tutte le versioni degli oggetti prima di eliminare il bucket.

Per istruzioni su come creare e testare un campione funzionante, consulta Nozioni di base nella Guida per gli sviluppatori di 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.*; import java.util.Iterator; public class DeleteBucket2 { public static void main(String[] args) { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); // Delete all objects from the bucket. This is sufficient // for unversioned buckets. For versioned buckets, when you attempt to delete // objects, Amazon S3 inserts // delete markers for all objects, but doesn't delete the object versions. // To delete objects from versioned buckets, delete all of the object versions // before deleting // the bucket (see below for an example). ObjectListing objectListing = s3Client.listObjects(bucketName); while (true) { Iterator<S3ObjectSummary> objIter = objectListing.getObjectSummaries().iterator(); while (objIter.hasNext()) { s3Client.deleteObject(bucketName, objIter.next().getKey()); } // If the bucket contains many objects, the listObjects() call // might not return all of the objects in the first listing. Check to // see whether the listing was truncated. If so, retrieve the next page of // objects // and delete them. if (objectListing.isTruncated()) { objectListing = s3Client.listNextBatchOfObjects(objectListing); } else { break; } } // Delete all object versions (required for versioned buckets). VersionListing versionList = s3Client.listVersions(new ListVersionsRequest().withBucketName(bucketName)); while (true) { Iterator<S3VersionSummary> versionIter = versionList.getVersionSummaries().iterator(); while (versionIter.hasNext()) { S3VersionSummary vs = versionIter.next(); s3Client.deleteVersion(bucketName, vs.getKey(), vs.getVersionId()); } if (versionList.isTruncated()) { versionList = s3Client.listNextBatchOfVersions(versionList); } else { break; } } // After all objects and object versions are deleted, delete the bucket. s3Client.deleteBucket(bucketName); } 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(); } } }

È possibile eliminare un bucket che contiene oggetti con il comando AWS CLI se il controllo delle versioni del bucket non è abilitato. Quando elimini un bucket che contiene oggetti, tutti gli oggetti nel bucket vengono eliminati definitivamente, inclusi gli oggetti che sono stati trasferiti alla classe di storage S3 Glacier Flexible Retrieval.

Se il tuo bucket non ha il controllo delle versioni abilitato, puoi usare il AWS CLI comando rb (remove bucket) con il --force parametro per eliminare il bucket e tutti gli oggetti in esso contenuti. Questo comando elimina prima tutti gli oggetti e quindi il bucket stesso.

Se il controllo delle versioni è abilitato, l'utilizzo del rb comando con il --force parametro non elimina gli oggetti con versione, quindi l'eliminazione del bucket non riesce perché il bucket non è vuoto. Per ulteriori informazioni sull'eliminazione di oggetti con versione, consulta la sezione Eliminazione delle versioni degli oggetti.

Per utilizzare il comando seguente, sostituiscilo amzn-s3-demo-bucket con il nome del bucket che desideri eliminare:

$ aws s3 rb s3://amzn-s3-demo-bucket --force

Per ulteriori informazioni, consulta Uso dei comandi S3 di alto livello con la AWS Command Line Interface nella Guida per l'utente.AWS Command Line Interface