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-Konsole oder die DELETE API verwenden, 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 Festlegen der Lebenszyklus-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 angegebene Objektversion dauerhaft in der Amazon S3-Konsole löschen, kann das Löschen nicht rückgängig gemacht werden.

So löschen Sie ein Objekt mit aktiviertem oder ausgesetztem Versioning
Anmerkung

Wenn die Versions-ID für ein Objekt in einem Bucket mit ausgesetztem Versioning als markiert istNULL, löscht S3 das Objekt dauerhaft, da keine früheren Versionen vorhanden sind. Wenn jedoch eine gültige Versions-ID für das Objekt in einem Bucket mit ausgesetztem Versioning aufgeführt ist, 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-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 und dann Löschen aus.

  4. Um das Löschen der Objektliste unter Angegebene Objekte im Textfeld Objekte löschen? zu bestätigen, geben Sie eindelete.

So löschen Sie eine bestimmte Objektversion in einem Bucket mit aktiviertem Versioning
Warnung

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

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon 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 aus.

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

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

So löschen Sie dauerhaft ein Objekt in einem Amazon S3-Bucket, für den das Versioning nicht aktiviert ist
Warnung

Wenn Sie ein Objekt in Amazon S3 dauerhaft löschen, kann das Löschen nicht rückgängig gemacht werden. Außerdem sind Löschvorgänge für alle Buckets ohne aktiviertes Versioning dauerhaft.

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon 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 und dann Löschen aus.

  4. Um das dauerhafte Löschen des unter Angegebene Objekte aufgelisteten Objekts zu bestätigen, geben Sie im Textfeld Objekte löschen? dauerhaft löschen ein.

Anmerkung

Wenn Sie Probleme beim Löschen Ihres Objekts haben, finden Sie weitere Informationen unter Ich möchte versionierte Objekte dauerhaft löschen.

Die folgenden Beispiele zeigen, wie Sie mit den - AWS SDKs ein Objekt aus einem Bucket löschen können. Weitere Informationen finden Sie unter DELETE Object in der API-Referenz zum Amazon Simple Storage Service.

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 Verwenden der Versioning in S3-Buckets.

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

Das folgende Beispiel geht davon aus, dass der Bucket nicht versioning-fähig ist und dass das Objekt über keine Versions-IDs verfügt. 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 Testen der Java-Codebeispiele für Amazon S3.

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 Version-IDs eines Objekts durch Senden einer ListVersions-Anfrage anfordern.

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 Verwenden der Versioning in S3-Buckets.

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

Das folgende C#-Beispiel löscht ein Objekt aus einem nicht-versionierten Bucket. Das Beispiel geht davon aus, dass die Objekte über keine Versions-IDs verfügen. Sie geben daher keine Versions-IDs an. Sie geben nur den Objektschlüssel ein.

Weitere Informationen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Ausführen der .NET-Codebeispiele für Amazon S3.

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

Weitere Informationen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Ausführen der .NET-Codebeispiele für Amazon S3.

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 Sie Klassen aus Version 3 des verwenden, AWS SDK for PHP um ein Objekt aus einem nicht versionierten Bucket zu löschen. Weitere Informationen über das Löschen eines Objekts aus einem versionsfähigen Bucket finden Sie unter Verwenden der REST-API.

Dieses Beispiel setzt voraus, dass Sie die Anweisungen für Verwenden von AWS SDK for PHP und Ausführen von PHP-Beispielen befolgen und das AWS SDK for PHP ordnungsgemäß installiert ist. Weitere Informationen zur Ausführung der PHP-Beispiele in dieser Anleitung finden Sie unter PHP-Beispiele ausführen.

Das folgende PHP-Beispiel löscht ein Objekt aus einem Bucket. 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

Dieses Beispiel zeigt, wie Sie Version 3 des verwenden, AWS SDK for JavaScript um ein Objekt zu löschen. Weitere Informationen zu AWS SDK for JavaScript finden Sie unter Verwendung der AWS SDK for 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();

Um ein Objekt pro Anfrage zu löschen, verwenden Sie die API DELETE. Weitere Informationen hierzu finden Sie unter DELETE Object. Weitere Hinweise zur Verwendung der CLI zum Löschen eines Objekts finden Sie unter delete-object.

Sie können die - AWS SDKs verwenden, um ein Objekt zu löschen. Falls in Ihrer Anwendung jedoch erforderlich, können Sie REST-Anforderungen auch direkt senden. Weitere Informationen finden Sie unter DELETE Object in der API-Referenz zum Amazon Simple Storage Service.