Eliminare un bucket per uso generico - 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à.

Eliminare un bucket per uso generico

Puoi eliminare un bucket Amazon S3 per uso generico vuoto. Per informazioni sullo svuotamento di un bucket generico, consulta. Svuotare un secchio per uso generico

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 generico, considera quanto segue:

  • i nomi dei bucket generici sono univoci all'interno di uno spazio dei nomi globale. Se elimini un bucket, tieni presente che un altro bucket Account AWS può utilizzare lo stesso nome di bucket generico per un nuovo bucket e può quindi 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. Per i bucket non più in uso, consigliamo di svuotare il bucket da tutti gli oggetti per ridurre al minimo i costi e conservare il bucket stesso.

  • Quando si elimina un bucket per uso generico, è possibile che il bucket non venga rimosso immediatamente. Invece, Amazon S3 mette in coda il bucket per l'eliminazione. Poiché Amazon S3 è distribuito su tutto il sistema Regioni AWS, il processo di eliminazione richiede tempo per propagarsi completamente e raggiungere la coerenza in tutto il sistema.

  • 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 tuo Classic Load Balancer nella User Guide for Classic Load Balancers e i log di accesso per il tuo Application Load Balancer nella User Guide for Application Load Balancer.

Risoluzione dei problemi

Se non riesci a eliminare un bucket Amazon S3 per uso generico, 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. Svuotare un secchio per uso generico

  • 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.

  • Assicurati di disporre dell's3:DeleteBucketautorizzazione: se non riesci a eliminare un bucket, contatta l'amministratore IAM per confermare di disporre dell'autorizzazione. 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.

  • Controlla le s3:DeleteBucket Deny istruzioni nelle politiche di controllo dei AWS Organizations servizi (SCPs) e nelle politiche di controllo delle risorse (RCPs) SCPs e RCPs puoi negare l'autorizzazione all'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 .

  • Verifica la presenza di s3:DeleteBucket Deny dichiarazioni nella tua policy sul bucket: se disponi di s3:DeleteBucket autorizzazioni nella tua policy relativa agli utenti o ai ruoli di 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 policy 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 generico, è necessario svuotarlo. Per informazioni sullo svuotamento di un bucket, consulta. Svuotare un secchio per uso generico

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 sinistro, scegli Bucket per uso generico.

  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 svuotare ed eliminare un bucket generico utilizzando. AWS SDK per Java Il codice elimina innanzitutto tutti gli oggetti nel bucket generico, quindi elimina il bucket.

Per esempi in altre lingue, consulta Use DeleteBucket con un AWS SDK o una CLI nell'API Reference di Amazon Simple Storage Service. 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 esempio funzionante, consulta la Guida per gli AWS SDK for Java 2.x sviluppatori.

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 generico che contiene oggetti 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 archiviazione 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 poi elimina il bucket.

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