Amazon S3Buckets erstellen, auflisten und löschen - AWS SDK for Java 2.x

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.

Amazon S3Buckets erstellen, auflisten und löschen

Jedes Objekt (Datei) in Amazon S3 muss sich in einem Bucket befinden. Ein Bucket stellt eine Sammlung von Objekten (Container) dar. Jeder Bucket muss einen eindeutigen Schlüssel (Name) haben. Ausführliche Informationen zu Buckets und ihrer Konfiguration finden Sie unter Working with Amazon S3 Buckets im Amazon Simple Storage Service Benutzerhandbuch.

Anmerkung

Bewährte Methode

Wir empfehlen, dass Sie die AbortIncompleteMultipartUploadLebenszyklusregel für Ihre Amazon S3 Buckets aktivieren.

Diese Regel weist Amazon S3 an, mehrteilige Uploads abzubrechen, die nicht innerhalb einer bestimmten Anzahl von Tagen nach dem Start abgeschlossen werden. Wenn die festgelegte Höchstdauer überschritten wird, bricht Amazon S3 den Upload ab und löscht dann die unvollständigen Upload-Daten.

Weitere Informationen finden Sie unter Lebenszykluskonfiguration für einen Bucket mit Versionierung im Amazon Simple Storage Service Benutzerhandbuch.

Anmerkung

Bei diesen Codefragmenten wird davon ausgegangen, dass Sie das Material in den Grundlagen verstehen und AWS Standardanmeldedaten anhand der Informationen in konfiguriert haben. Einrichtung für den Single Sign-On-Zugriff für das SDK

Erstellen eines -Buckets

Erstellen Sie einen Bucket CreateBucketRequestund geben Sie einen Namen an. Übergeben Sie ihn an die Methode des S3Client. createBucket Verwenden Sie den S3Client, um zusätzliche Operationen wie das Auflisten oder Löschen von Buckets, wie in späteren Beispielen gezeigt, durchzuführen.

Importe

import software.amazon.awssdk.core.waiters.WaiterResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.CreateBucketRequest; import software.amazon.awssdk.services.s3.model.S3Exception; import software.amazon.awssdk.services.s3.model.HeadBucketRequest; import software.amazon.awssdk.services.s3.model.HeadBucketResponse; import software.amazon.awssdk.services.s3.model.ListBucketsRequest; import software.amazon.awssdk.services.s3.model.ListBucketsResponse; import software.amazon.awssdk.services.s3.model.DeleteBucketRequest; import software.amazon.awssdk.services.s3.waiters.S3Waiter;

Code

Erstellen Sie zuerst einen S3Client.

Region region = Region.US_EAST_1; S3Client s3 = S3Client.builder() .region(region) .build();

Stellen Sie eine Anfrage zum Erstellen eines Buckets.

import software.amazon.awssdk.core.waiters.WaiterResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.CreateBucketRequest; import software.amazon.awssdk.services.s3.model.S3Exception; import software.amazon.awssdk.services.s3.model.HeadBucketRequest; import software.amazon.awssdk.services.s3.model.HeadBucketResponse; import software.amazon.awssdk.services.s3.model.ListBucketsRequest; import software.amazon.awssdk.services.s3.model.ListBucketsResponse; import software.amazon.awssdk.services.s3.model.DeleteBucketRequest; import software.amazon.awssdk.services.s3.waiters.S3Waiter; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class S3BucketOps { public static void main(String[] args) { Region region = Region.US_EAST_1; S3Client s3 = S3Client.builder() .region(region) .build(); String bucket = "bucket" + System.currentTimeMillis(); System.out.println(bucket); createBucket(s3, bucket); performOperations(s3, bucket); } // Create a bucket by using a S3Waiter object public static void createBucket(S3Client s3Client, String bucketName) { try { S3Waiter s3Waiter = s3Client.waiter(); CreateBucketRequest bucketRequest = CreateBucketRequest.builder() .bucket(bucketName) .build(); s3Client.createBucket(bucketRequest); HeadBucketRequest bucketRequestWait = HeadBucketRequest.builder() .bucket(bucketName) .build(); // Wait until the bucket is created and print out the response. WaiterResponse<HeadBucketResponse> waiterResponse = s3Waiter.waitUntilBucketExists(bucketRequestWait); waiterResponse.matched().response().ifPresent(System.out::println); System.out.println(bucketName + " is ready"); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Das vollständige Beispiel finden Sie unter. GitHub

Buckets auflisten

Baue ein ListBucketsRequest. Verwenden Sie die listBuckets Methode des S3Client, um die Liste der Buckets abzurufen. Wenn die Anfrage erfolgreich ist, wird a zurückgegeben. ListBucketsResponse Verwenden Sie dieses Antwortobjekt zum Abrufen der Liste der Buckets.

Importe

import software.amazon.awssdk.core.waiters.WaiterResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.CreateBucketRequest; import software.amazon.awssdk.services.s3.model.S3Exception; import software.amazon.awssdk.services.s3.model.HeadBucketRequest; import software.amazon.awssdk.services.s3.model.HeadBucketResponse; import software.amazon.awssdk.services.s3.model.ListBucketsRequest; import software.amazon.awssdk.services.s3.model.ListBucketsResponse; import software.amazon.awssdk.services.s3.model.DeleteBucketRequest; import software.amazon.awssdk.services.s3.waiters.S3Waiter;

Code

Erstellen Sie zuerst einen S3Client.

Region region = Region.US_EAST_1; S3Client s3 = S3Client.builder() .region(region) .build();

Stellen Sie eine Anfrage zum Auflisten der Buckets.

// List buckets ListBucketsRequest listBucketsRequest = ListBucketsRequest.builder().build(); ListBucketsResponse listBucketsResponse = s3.listBuckets(listBucketsRequest); listBucketsResponse.buckets().stream().forEach(x -> System.out.println(x.name()));

Das vollständige Beispiel finden Sie unter. GitHub

Löschen eines -Buckets

Bevor Sie einen Amazon S3-Bucket löschen können, müssen Sie sicherstellen, dass der Bucket leer ist. Andernfalls gibt der Service einen Fehler zurück. Wenn Sie einen versionierten Bucket nutzen, müssen Sie außerdem alle versionierten Objekte löschen, die sich im Bucket befinden.

Objekte in einem Bucket löschen

Erstellen Sie eine ListObjectsV2Request und verwenden Sie die listObjects Methode des S3Client, um die Liste der Objekte im Bucket abzurufen. Anschließend verwenden Sie die deleteObject-Methode für jedes Objekt, um es zu löschen.

Importe

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.DeleteBucketRequest; import software.amazon.awssdk.services.s3.model.DeleteObjectRequest; import software.amazon.awssdk.services.s3.model.ListObjectsV2Request; import software.amazon.awssdk.services.s3.model.ListObjectsV2Response; import software.amazon.awssdk.services.s3.model.S3Exception; import software.amazon.awssdk.services.s3.model.S3Object;

Code

Erstellen Sie zuerst einen S3Client.

ProfileCredentialsProvider credentialsProvider = ProfileCredentialsProvider.create(); Region region = Region.US_EAST_1; S3Client s3 = S3Client.builder() .region(region) .credentialsProvider(credentialsProvider) .build();

Löschen Sie alle Objekte im Bucket.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.DeleteBucketRequest; import software.amazon.awssdk.services.s3.model.DeleteObjectRequest; import software.amazon.awssdk.services.s3.model.ListObjectsV2Request; import software.amazon.awssdk.services.s3.model.ListObjectsV2Response; import software.amazon.awssdk.services.s3.model.S3Exception; import software.amazon.awssdk.services.s3.model.S3Object; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class S3BucketDeletion { public static void main(String[] args) throws Exception { final String usage = """ Usage: <bucket> Where: bucket - The bucket to delete (for example, bucket1).\s """; if (args.length != 1) { System.out.println(usage); System.exit(1); } String bucket = args[0]; Region region = Region.US_EAST_1; S3Client s3 = S3Client.builder() .region(region) .build(); deleteObjectsInBucket(s3, bucket); s3.close(); } public static void deleteObjectsInBucket(S3Client s3, String bucket) { try { // To delete a bucket, all the objects in the bucket must be deleted first. ListObjectsV2Request listObjectsV2Request = ListObjectsV2Request.builder() .bucket(bucket) .build(); ListObjectsV2Response listObjectsV2Response; do { listObjectsV2Response = s3.listObjectsV2(listObjectsV2Request); for (S3Object s3Object : listObjectsV2Response.contents()) { DeleteObjectRequest request = DeleteObjectRequest.builder() .bucket(bucket) .key(s3Object.key()) .build(); s3.deleteObject(request); } } while (listObjectsV2Response.isTruncated()); DeleteBucketRequest deleteBucketRequest = DeleteBucketRequest.builder().bucket(bucket).build(); s3.deleteBucket(deleteBucketRequest); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }

Das vollständige Beispiel finden Sie unter. GitHub

Einen leeren Bucket löschen

Erstellen Sie eine DeleteBucketRequestmit einem Bucket-Namen und übergeben Sie sie an die Methode des S3Client. deleteBucket

Importe

import software.amazon.awssdk.core.waiters.WaiterResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.CreateBucketRequest; import software.amazon.awssdk.services.s3.model.S3Exception; import software.amazon.awssdk.services.s3.model.HeadBucketRequest; import software.amazon.awssdk.services.s3.model.HeadBucketResponse; import software.amazon.awssdk.services.s3.model.ListBucketsRequest; import software.amazon.awssdk.services.s3.model.ListBucketsResponse; import software.amazon.awssdk.services.s3.model.DeleteBucketRequest; import software.amazon.awssdk.services.s3.waiters.S3Waiter;

Code

Erstellen Sie zuerst einen S3Client.

Region region = Region.US_EAST_1; S3Client s3 = S3Client.builder() .region(region) .build();

Löschen Sie den Bucket.

DeleteBucketRequest deleteBucketRequest = DeleteBucketRequest.builder() .bucket(bucket) .build(); s3.deleteBucket(deleteBucketRequest); s3.close();

Das vollständige Beispiel finden Sie unter. GitHub