Löschen eines einzelnen Objekts - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Löschen eines einzelnen Objekts

Sie können die Amazon S3 S3-Konsole oder die verwenden DELETEAPI, um ein einzelnes vorhandenes Objekt aus einem S3-Bucket zu löschen. Weitere Informationen zum Löschen von Objekten in Amazon S3 finden Sie unter Löschen von Amazon-S3-Objekten.

Für alle Objekte, die Sie in Ihrem S3-Bucket aufbewahren, entstehen Speicherkosten, deshalb sollten Sie Objekte löschen, die Sie nicht mehr brauchen. Wenn Sie beispielsweise Protokolldateien sammeln, sollten Sie sie unbedingt löschen, wenn sie nicht mehr benötigt werden. Sie können einen Lebenszyklusregel definieren, um Objekte wie Protokolldateien automatisch zu löschen. Weitere Informationen finden Sie unter Einstellung einer S3-Lifecycle-Konfiguration für einen Bucket.

Informationen zu den Funktionen und Preisen von Amazon S3 finden Sie unter Amazon-S3-Preise.

Befolgen Sie diese Schritte, um mithilfe der Amazon-S3-Konsole ein einzelnes Objekt aus einem Bucket zu löschen.

Warnung

Wenn Sie ein Objekt oder eine bestimmte Objektversion dauerhaft in der Amazon S3 S3-Konsole löschen, kann der Löschvorgang nicht rückgängig gemacht werden.

Um ein Objekt zu löschen, für das die Versionsverwaltung aktiviert oder ausgesetzt wurde
Anmerkung

Wenn die Versions-ID für ein Objekt in einem Bucket, für das die Versionierung gesperrt wurdeNULL, als markiert ist, löscht S3 das Objekt dauerhaft, da keine früheren Versionen existieren. Wenn jedoch eine gültige Versions-ID für das Objekt in einem Bucket aufgeführt ist, für das die Versionierung gesperrt wurde, erstellt S3 eine Löschmarkierung für das gelöschte Objekt, wobei die vorherigen Versionen des Objekts beibehalten werden.

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Liste Bucket Name (Bucket-Name) den Namen des Buckets aus, aus dem Sie ein Objekt löschen möchten.

  3. Wählen Sie das Objekt aus und wählen Sie dann Löschen.

  4. Um das Löschen der Objektliste unter Bestimmte Objekte im Bereich Objekte löschen zu bestätigen? Geben Sie in das Textfeld eindelete.

Um eine bestimmte Objektversion in einem Bucket mit aktivierter Versionierung dauerhaft zu löschen
Warnung

Wenn Sie eine bestimmte Objektversion in Amazon S3 dauerhaft löschen, kann der Löschvorgang nicht rückgängig gemacht werden.

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Liste Bucket Name (Bucket-Name) den Namen des Buckets aus, aus dem Sie ein Objekt löschen möchten.

  3. Wählen Sie das zu löschende Objekt aus.

  4. Wählen Sie den Schalter Versionen anzeigen.

  5. Wählen Sie die Objektversion aus und klicken Sie dann auf Löschen.

  6. Um das dauerhafte Löschen der spezifischen Objektversionen zu bestätigen, die unter Bestimmte Objekte im Bereich Objekte löschen? aufgeführt sind Geben Sie im Textfeld Dauerhaft löschen ein. Amazon S3 löscht die spezifische Objektversion dauerhaft.

Um ein Objekt in einem Amazon S3 S3-Bucket, für den die Versionierung nicht aktiviert ist, dauerhaft zu löschen
Warnung

Wenn Sie ein Objekt in Amazon S3 dauerhaft löschen, kann der Löschvorgang nicht rückgängig gemacht werden. Außerdem sind Löschungen für alle Buckets ohne aktivierte Versionierung dauerhaft.

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Liste Bucket Name (Bucket-Name) den Namen des Buckets aus, aus dem Sie ein Objekt löschen möchten.

  3. Wählen Sie das Objekt aus und wählen Sie dann Löschen.

  4. Um das dauerhafte Löschen des Objekts zu bestätigen, das unter Bestimmte Objekte im Feld Objekte löschen? aufgeführt ist Geben Sie im Textfeld Dauerhaft löschen ein.

Anmerkung

Falls beim Löschen Ihres Objekts Probleme auftreten, finden Sie weitere Informationen unterIch möchte versionierte Objekte dauerhaft löschen.

Um ein Objekt pro Anfrage zu löschen, verwenden Sie die DELETEAPI. Weitere Informationen finden Sie unter DELETEObjekt. Weitere Hinweise zur Verwendung von CLI zum Löschen eines Objekts finden Sie unter delete-object.

Sie können den verwenden AWS SDKs, um ein Objekt zu löschen. Wenn Ihre Anwendung dies jedoch erfordert, können Sie REST Anfragen direkt senden. Weitere Informationen finden Sie unter DELETEObjekt in der Amazon Simple Storage Service API Reference.

Die folgenden Beispiele zeigen, wie Sie mit AWS SDKs dem ein Objekt aus einem Bucket löschen können. Weitere Informationen finden Sie unter DELETEObjekt in der Amazon Simple Storage Service API Reference

Wenn für den Bucket das S3-Versioning aktiviert ist, stehen Ihnen die folgenden Optionen zur Verfügung:

  • Löschen einer spezifischen Objektversion durch Angabe einer Versions-ID.

  • Löschen eines Objekts ohne Angabe einer Version-ID. In diesem Fall fügt Amazon S3 dem Objekt eine Löschmarkierung hinzu.

Weitere Informationen über das S3-Versioning finden Sie unter Beibehaltung mehrerer Versionen von Objekten mit S3 Versioning.

Java
Beispiel 1: Löschen eines Objekts (nicht versionierter Bucket)

Im folgenden Beispiel wird davon ausgegangen, dass der Bucket nicht versionierungsfähig ist und das Objekt keine Version hat. IDs In der Löschanfrage geben Sie nur den Objektschlüssel und keine Versions-ID an.

Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Erste Schritte im AWS SDK for Java Entwicklerhandbuch.

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(); } } }
Beispiel 2: Löschen eines Objekts (versionierter Bucket)

Das folgende Beispiel löscht ein Objekt aus einem versionierten Bucket. Das Beispiel löscht eine spezifische Objektversion durch Angabe des Namens des Objektschlüssels und der Versions-ID.

Das Beispiel erledigt Folgendes:

  1. Fügt dem Bucket ein Beispielobjekt hinzu. Amazon S3 gibt die die Versions-ID des neu hinzugefügten Objekts zurück. Das Beispiel verwendet diese Versions-ID in der Löschanfrage.

  2. Löscht die Objektversion durch Angabe sowohl des Objektschlüsselnamens als auch einer Versions-ID. Wenn keine anderen Versionen dieses Objekts vorhanden sind, löscht Amazon S3 das gesamte Objekt. Andernfalls löscht Amazon S3 die angegebene Version.

    Anmerkung

    Sie können die Version IDs eines Objekts abrufen, indem Sie eine ListVersions Anfrage senden.

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

Das folgende Beispiel veranschaulicht, wie Sie ein Objekt sowohl aus versionierten als auch aus nicht-versionierten Buckets löschen. Weitere Informationen über das S3-Versioning finden Sie unter Beibehaltung mehrerer Versionen von Objekten mit S3 Versioning.

Beispiel Löschen eines Objekts aus einem nicht-versionierten Bucket

Das folgende C#-Beispiel löscht ein Objekt aus einem nicht-versionierten Bucket. In dem Beispiel wird davon ausgegangen, dass die Objekte keine Version habenIDs, sodass Sie keine Version angebenIDs. Sie geben nur den Objektschlüssel ein.

Informationen zum Einrichten und Ausführen der Codebeispiele finden Sie unter Erste Schritte mit dem AWS SDK for. NETim AWS SDKfür. NETLeitfaden für Entwickler.

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); } } } }
Beispiel Löschen eines Objekts aus einem versionierten Bucket

Das folgende C#-Beispiel löscht ein Objekt aus einem versionierten Bucket. Es löscht eine bestimmte Objektversion durch Angabe des Namens des Objektschlüssels und der Versions-ID.

Der Code führt die folgenden Aufgaben durch:

  1. Aktiviert das S3-Versioning für einen Bucket, den Sie angeben (wenn S3-Versioning bereits aktiviert ist, hat dies keine Auswirkungen).

  2. Fügt dem Bucket ein Beispielobjekt hinzu. In der Antwort gibt Amazon S3 die Versions-ID des neu hinzugefügten Objekts zurück. Das Beispiel verwendet diese Versions-ID in der Löschanfrage.

  3. Löscht das Beispielobjekt durch Angabe sowohl des Objektschlüsselnamens als auch einer Versions-ID.

    Anmerkung

    Sie können die Version-IDs eines Objekts durch Senden einer ListVersions-Anfrage anfordern.

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

Informationen zum Einrichten und Ausführen der Codebeispiele finden Sie unter Erste Schritte mit dem AWS SDK for. NETim AWS SDKfür. NETLeitfaden für Entwickler.

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

Dieses Beispiel zeigt, wie Klassen aus Version 3 von verwendet werden, AWS SDK for PHP um ein Objekt aus einem Bucket ohne Versionsnummer zu löschen. Weitere Informationen über das Löschen eines Objekts aus einem versionsfähigen Bucket finden Sie unter Verwenden von REST API.

Weitere Informationen zu AWS SDK for Ruby finden Sie API unter AWS SDKfor Ruby — Version 2.

Im folgenden PHP Beispiel wird ein Objekt aus einem Bucket gelöscht. Da dieses Beispiel zeigt, wie Objekte aus nicht versionsgesteuerten Buckets gelöscht werden, gibt es in der Löschanfrage nur den Bucket-Namen und Objektschlüssel (keine Versions-ID) an.

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