Eliminazione di oggetti da un bucket di directory - Amazon Simple Storage Service

Eliminazione di oggetti da un bucket di directory

È possibile eliminare oggetti da un bucket di directory Amazon S3 utilizzando la console Amazon S3, gli SDK AWS Command Line Interface (AWS CLI) o AWS. Per ulteriori informazioni, consulta Operazioni con i bucket di directory e S3 Express One Zone.

avvertimento
  • L'eliminazione di un oggetto non può essere annullata.

  • Questa azione elimina tutti gli oggetti specificati. Quando si eliminano le cartelle, attendere che l'azione di eliminazione finisca prima di aggiungere nuovi oggetti alla cartella. In caso contrario, potrebbero essere eliminati anche nuovi oggetti.

Nota

Quando si eliminano programmaticamente più oggetti da un bucket della directory, si noti quanto segue:

  • Le chiavi degli oggetti nelle richieste DeleteObjects devono contenere almeno un carattere diverso dallo spazio. Le stringhe con tutti i caratteri di spazio bianco non sono supportate.

  • Le chiavi degli oggetti nelle richieste di DeleteObjects non possono contenere caratteri di controllo Unicode, ad eccezione di newline (\n), tab (\t) e carriage return (\r).

Per eliminare oggetti
  1. Accedi alla Console di gestione AWS e apri la console Amazon S3 all’indirizzo https://console.aws.amazon.com/s3/.

  2. Nel riquadro di navigazione a sinistra, scegli Bucket di directory.

  3. Scegli il bucket della directory che contiene gli oggetti da eliminare.

  4. Scegli la scheda Objects (Oggetti). Nell'elenco Oggetti, seleziona la casella di controllo a sinistra dell'oggetto o degli oggetti che si desidera eliminare.

  5. Scegli Elimina.

  6. Nella pagina Elimina oggetti inserisci permanently delete nella casella di testo.

  7. Scegliere Delete objects (Elimina oggetti).

SDK for Java 2.x

L'esempio seguente elimina gli oggetti di un bucket di directory usando AWS SDK for Java 2.x.

static void deleteObject(S3Client s3Client, String bucketName, String objectKey) { try { DeleteObjectRequest del = DeleteObjectRequest.builder() .bucket(bucketName) .key(objectKey) .build(); s3Client.deleteObject(del); System.out.println("Object " + objectKey + " has been deleted"); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
SDK for Python

L'esempio seguente elimina gli oggetti di un bucket di directory usando AWS SDK per Python (Boto3).

import logging import boto3 from botocore.exceptions import ClientError def delete_objects(s3_client, bucket_name, objects): ''' Delete a list of objects in a directory bucket :param s3_client: boto3 S3 client :param bucket_name: Bucket that contains objects to be deleted; for example, 'doc-example-bucket--usw2-az1--x-s3' :param objects: List of dictionaries that specify the key names to delete :return: Response output, else False ''' try: response = s3_client.delete_objects( Bucket = bucket_name, Delete = { 'Objects': objects } ) return response except ClientError as e: logging.error(e) return False if __name__ == '__main__': region = 'us-west-2' bucket_name = 'BUCKET_NAME' objects = [ { 'Key': '0.txt' }, { 'Key': '1.txt' }, { 'Key': '2.txt' }, { 'Key': '3.txt' }, { 'Key': '4.txt' } ] s3_client = boto3.client('s3', region_name = region) results = delete_objects(s3_client, bucket_name, objects) if results is not None: if 'Deleted' in results: print (f'Deleted {len(results["Deleted"])} objects from {bucket_name}') if 'Errors' in results: print (f'Failed to delete {len(results["Errors"])} objects from {bucket_name}')

Il seguente esempio di comando delete-object mostra come si può usare il comando AWS CLI per eliminare un oggetto da un bucket della directory. Per eseguire questo comando, sostituisci user input placeholders con le informazioni appropriate.

aws s3api delete-object --bucket bucket-base-name--zone-id--x-s3 --key KEY_NAME

Per ulteriori informazioni, consulta delete-object nella documentazione di riferimento dei comandi della AWS CLI.

Il seguente esempio di comando delete-objects mostra come utilizzare AWS CLI per eliminare un oggetto da un bucket di directory. Per eseguire questo comando, sostituisci user input placeholders con le informazioni appropriate.

Il file delete.json è il seguente:

{ "Objects": [ { "Key": "0.txt" }, { "Key": "1.txt" }, { "Key": "2.txt" }, { "Key": "3.txt" } ] }

Il comando di esempio delete-objects è il seguente:

aws s3api delete-objects --bucket bucket-base-name--zone-id--x-s3 --delete file://delete.json

Per ulteriori informazioni, consulta delete-objects nella documentazione di riferimento dei comandi della AWS CLI.