AWS SDK for Java 1.x telah memasuki mode pemeliharaan pada 31 Juli 2024, dan akan mencapai end-of-support
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Melakukan Operasi pada Amazon S3 Objek
Sebuah Amazon S3 objek merupakan file atau koleksi data. Setiap objek harus berada dalam ember.
catatan
Contoh kode ini mengasumsikan bahwa Anda memahami materi dalam Menggunakan AWS SDK for Java dan telah mengkonfigurasi AWS kredensyal default menggunakan informasi di Menyiapkan AWS Kredensyal dan Wilayah untuk Pengembangan.
Topik
Meng-unggah Objek
Gunakan putObject
metode klien AmazonS3, menyediakan nama bucket, nama kunci, dan file untuk diunggah. Bucket harus ada, atau eror akan terjadi.
Impor
import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3;
Kode
System.out.format("Uploading %s to S3 bucket %s...\n", file_path, bucket_name); final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { s3.putObject(bucket_name, key_name, new File(file_path)); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }
Lihat contoh lengkapnya
Daftar Objek
Untuk mendapatkan daftar objek dalam bucket, gunakan listObjects
metode klien AmazonS3, yang menyediakan nama bucket.
listObjects
Metode mengembalikan sebuah ObjectListingobjek yang menyediakan informasi tentang objek dalam ember. Untuk daftar nama objek (kunci), gunakan getObjectSummaries
metode untuk mendapatkan Daftar ObjectSummary objek S3, yang masing-masing mewakili satu objek dalam ember. Kemudian panggil getKey
metodenya untuk mengambil nama objek.
Impor
import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ListObjectsV2Result; import com.amazonaws.services.s3.model.S3ObjectSummary;
Kode
System.out.format("Objects in S3 bucket %s:\n", bucket_name); final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); ListObjectsV2Result result = s3.listObjectsV2(bucket_name); List<S3ObjectSummary> objects = result.getObjectSummaries(); for (S3ObjectSummary os : objects) { System.out.println("* " + os.getKey()); }
Lihat contoh lengkapnya
Mengunduh Objek
Gunakan getObject
metode klien AmazonS3, berikan nama bucket dan objek untuk diunduh. Jika berhasil, metode mengembalikan S3Object. Bucket dan kunci objek yang ditentukan harus ada, atau eror akan terjadi.
Anda bisa mendapatkan isi objek dengan memanggil getObjectContent
S3Object
. Ini mengembalikan S3 ObjectInputStream yang berperilaku sebagai objek Java InputStream
standar.
Contoh berikut mendownload objek dari S3 dan menyimpan isinya ke file (menggunakan nama yang sama dengan kunci objek).
Impor
import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.S3Object; import com.amazonaws.services.s3.model.S3ObjectInputStream; import java.io.File;
Kode
System.out.format("Downloading %s from S3 bucket %s...\n", key_name, bucket_name); final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { S3Object o = s3.getObject(bucket_name, key_name); S3ObjectInputStream s3is = o.getObjectContent(); FileOutputStream fos = new FileOutputStream(new File(key_name)); byte[] read_buf = new byte[1024]; int read_len = 0; while ((read_len = s3is.read(read_buf)) > 0) { fos.write(read_buf, 0, read_len); } s3is.close(); fos.close(); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); } catch (FileNotFoundException e) { System.err.println(e.getMessage()); System.exit(1); } catch (IOException e) { System.err.println(e.getMessage()); System.exit(1); }
Lihat contoh lengkapnya
Menyalin, Memindahkan, atau Mengganti Nama Objek
Anda dapat menyalin sebuah objek dari satu bucket ke bucket lainnya menggunakan Amazons3. copyObject
Dibutuhkan nama bucket untuk menyalin dari, objek untuk menyalin, dan nama bucket tujuan.
Impor
import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions;
Kode
try { s3.copyObject(from_bucket, object_key, to_bucket, object_key); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); } System.out.println("Done!");
Lihat contoh lengkapnya
catatan
Anda dapat menggunakan copyObject
dengan deleteObject untuk memindahkan atau mengganti nama objek, dengan terlebih dahulu menyalin objek ke nama baru (Anda dapat menggunakan bucket yang sama sebagai sumber dan tujuan) dan kemudian menghapus objek dari lokasi lamanya.
Menghapus Objek
Gunakan deleteObject
metode klien Amazons3, berikan nama bucket dan objek yang akan dihapus. Bucket dan kunci objek yang ditentukan harus ada, atau eror akan terjadi.
Impor
import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions;
Kode
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { s3.deleteObject(bucket_name, object_key); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }
Lihat contoh lengkapnya
Hapus Beberapa Objek Sekaligus
Menggunakan deleteObjects
metode AmazonS3 klien, Anda dapat menghapus beberapa objek dari bucket yang sama dengan meneruskan nama mereka ke link: sdk-for-java DeleteObjectsRequest /v1/reference/com/amazonaws/services/s3/model/.html metode.
Impor
import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3;
Kode
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { DeleteObjectsRequest dor = new DeleteObjectsRequest(bucket_name) .withKeys(object_keys); s3.deleteObjects(dor); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }
Lihat contoh lengkapnya