Löschen von Objekten in einem Verzeichnis-Bucket - Amazon Simple Storage Service

Löschen von Objekten in einem Verzeichnis-Bucket

Sie können Objekte aus einem Verzeichnis-Bucket löschen, indem Sie die Amazon-S3-Konsole, AWS Command Line Interface (AWS CLI) oder AWS-SDKs verwenden. Weitere Informationen finden Sie unter Arbeiten mit Verzeichnis-Buckets und S3 Express One Zone.

Warnung
  • Das Löschen eines Objekts kann nicht rückgängig gemacht werden.

  • Diese Aktion löscht alle angegebenen Objekte. Warten Sie beim Löschen von Ordnern, bis die Löschaktion abgeschlossen ist, bevor Sie dem Ordner neue Objekte hinzufügen. Andernfalls könnten auch neue Objekte gelöscht werden.

Anmerkung

Wenn Sie programmgesteuert mehrere Objekte aus einem Verzeichnis-Bucket löschen, beachten Sie Folgendes:

  • Objektschlüssel in DeleteObjects-Anforderungen müssen mindestens ein Zeichen enthalten, das kein Leerzeichen ist. Zeichenfolgen, die ausschließlich Leerzeichen enthalten, werden nicht unterstützt.

  • Objektschlüssel in DeleteObjects-Anforderungen dürfen keine Unicode-Steuerzeichen enthalten, mit Ausnahme von newline (\n), tab (\t) und carriage return (\r).

So löschen Sie Objekte
  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im linken Navigationsbereich Verzeichnis-Buckets aus.

  3. Wählen Sie den Verzeichnis-Bucket aus, der die Objekte enthält, die Sie löschen möchten.

  4. Wählen Sie dieObjekte-Tag. Aktivieren Sie in der Liste Objekte das Kontrollkästchen links von dem oder den Objekten, die Sie löschen möchten.

  5. Wählen Sie Löschen aus.

  6. Geben Sie auf der Seite Objekte löschen permanently delete in das Textfeld ein.

  7. Wählen Sie Objekte löschen aus.

SDK for Java 2.x

Im folgenden Beispiel werden Objekte in einem Verzeichnis-Bucket mithilfe von AWS SDK for Java 2.x gelöscht.

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

Im folgenden Beispiel werden Objekte in einem Verzeichnis-Bucket mithilfe von AWS SDK für Python (Boto3) gelöscht.

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}')

Der folgende delete-object-Beispielbefehl zeigt, wie Sie die AWS CLI verwenden können, um ein Objekt aus einem Verzeichnis-Bucket zu löschen. Zum Ausführen dieses Befehls ersetzen Sie user input placeholders durch Ihre Informationen.

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

Weitere Informationen finden Sie unter delete-object in der Referenz zum AWS CLI-Befehl.

Der folgende delete-objects Beispielbefehl zeigt, wie Sie mit AWS CLI Objekte aus einem Verzeichnis-Bucket löschen können. Zum Ausführen dieses Befehls ersetzen Sie user input placeholders durch Ihre Informationen.

Die delete.json-Datei sieht wie folgt aus:

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

Der delete-objects-Beispielbefehl ist wie folgt:

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

Weitere Informationen finden Sie unter delete-objects in der Referenz zum AWS CLI-Befehl.