Buat, daftar, dan hapus Amazon S3 ember - AWS SDK for Java 2.x

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat, daftar, dan hapus Amazon S3 ember

Setiap objek (file) di Amazon S3 harus berada dalam ember. Sebuah ember mewakili koleksi (wadah) objek. Setiap ember harus memiliki kunci (nama) yang unik. Untuk informasi terperinci tentang bucket dan konfigurasinya, lihat Bekerja dengan Amazon S3 Bucket di Amazon Simple Storage Service Panduan Pengguna.

catatan

Praktik Terbaik

Kami menyarankan Anda mengaktifkan aturan AbortIncompleteMultipartUploadsiklus hidup pada bucket AndaAmazon S3.

Aturan ini mengarahkan Amazon S3 untuk membatalkan unggahan multipart yang tidak selesai dalam jumlah hari tertentu setelah dimulai. Ketika batas waktu yang ditetapkan terlampaui, Amazon S3 batalkan unggahan dan kemudian menghapus data unggahan yang tidak lengkap.

Untuk informasi selengkapnya, lihat Konfigurasi Siklus Hidup untuk Bucket dengan Pembuatan Versi di Panduan Pengguna. Amazon Simple Storage Service

catatan

Cuplikan kode ini mengasumsikan bahwa Anda memahami materi dalam dasar-dasar, dan telah mengonfigurasi AWS kredensi default menggunakan informasi di. Pengaturan untuk akses masuk tunggal untuk SDK

Buat bucket

Buat CreateBucketRequestdan berikan nama ember. Teruskan ke metode S3Client. createBucket Gunakan S3Client untuk melakukan operasi tambahan seperti mencantumkan atau menghapus bucket seperti yang ditunjukkan pada contoh selanjutnya.

Impor

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;

Kode

Pertama buat S3Client.

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

Buat Permintaan Buat Bucket.

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

Lihat contoh lengkapnya di GitHub.

Daftar ember

Membangun a ListBucketsRequest. Gunakan listBuckets metode S3Client untuk mengambil daftar bucket. Jika permintaan berhasil ListBucketsResponsedikembalikan. Gunakan objek respon ini untuk mengambil daftar ember.

Impor

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;

Kode

Pertama buat S3Client.

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

Buat Daftar Permintaan Bucket.

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

Lihat contoh lengkapnya di GitHub.

Hapus bucket

Sebelum Anda dapat menghapus Amazon S3 ember, Anda harus memastikan bahwa bucket kosong atau layanan akan mengembalikan kesalahan. Jika Anda memiliki bucket berversi, Anda juga harus menghapus objek berversi apa pun yang ada di bucket.

Hapus objek dalam ember

Buat ListObjectsV2Request dan gunakan listObjects metode S3Client untuk mengambil daftar objek di bucket. Kemudian gunakan deleteObject metode pada setiap objek untuk menghapusnya.

Impor

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;

Kode

Pertama buat S3Client.

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

Hapus semua objek di ember.

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

Lihat contoh lengkapnya di GitHub.

Hapus ember kosong

Buat DeleteBucketRequestdengan nama bucket dan teruskan ke metode S3Client. deleteBucket

Impor

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;

Kode

Pertama buat S3Client.

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

Hapus bucket.

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

Lihat contoh lengkapnya di GitHub.