Spring Cloud AWS - S3

Dalam artikel singkat ini, kami akan menjelajahi dukungan AWS yang disediakan di platform Spring Cloud - dengan fokus pada S3.

Seri Konten: Artikel ini adalah bagian dari seri: • Spring Cloud AWS - S3 (artikel saat ini) • Spring Cloud AWS - EC2

• Spring Cloud AWS - RDS

• Spring Cloud AWS - Dukungan Perpesanan

1. Unduhan S3 Sederhana

Mari kita mulai dengan mengakses file yang disimpan di S3 dengan mudah:

@Autowired ResourceLoader resourceLoader; public void downloadS3Object(String s3Url) throws IOException { Resource resource = resourceLoader.getResource(s3Url); File downloadedS3Object = new File(resource.getFilename()); try (InputStream inputStream = resource.getInputStream()) { Files.copy(inputStream, downloadedS3Object.toPath(), StandardCopyOption.REPLACE_EXISTING); } }

2. Upload S3 Sederhana

Kami juga dapat mengunggah file:

public void uploadFileToS3(File file, String s3Url) throws IOException { WritableResource resource = (WritableResource) resourceLoader .getResource(s3Url); try (OutputStream outputStream = resource.getOutputStream()) { Files.copy(file.toPath(), outputStream); } }

3. Struktur URL S3

The s3Url diwakili menggunakan format:

s3:///

Misalnya, jika file bar.zip ada di folder foo di bucket my-s3- bucket, maka URL-nya akan menjadi:

s3://my-s3-bucket/foo/bar.zip

Dan, kita juga bisa mendownload beberapa objek sekaligus menggunakan ResourcePatternResolver dan pencocokan pola Ant-style:

private ResourcePatternResolver resourcePatternResolver; @Autowired public void setupResolver(ApplicationContext applicationContext, AmazonS3 amazonS3) { this.resourcePatternResolver = new PathMatchingSimpleStorageResourcePatternResolver(amazonS3, applicationContext); } public void downloadMultipleS3Objects(String s3Url) throws IOException { Resource[] allFileMatchingPatten = this.resourcePatternResolver .getResources(s3Url); // ... } }

URL dapat berisi karakter pengganti, bukan nama persis.

Misalnya, URL s3: //my-s3-bucket/**/a*.txt akan secara rekursif mencari semua file teks yang namanya dimulai dengan ' a ' di folder mana pun di my-s3-bucket .

Perhatikan bahwa biji ResourceLoader dan ResourcePatternResolver dibuat saat aplikasi dimulai menggunakan fitur konfigurasi otomatis Spring Boot.

4. Kesimpulan

Dan kita sudah selesai - ini adalah pengenalan cepat dan langsung ke akses ke S3 dengan Spring Cloud AWS.

Dalam artikel seri berikutnya, kita akan menjelajahi dukungan kerangka kerja EC2.

Seperti biasa, contoh tersedia di GitHub.

Berikutnya » Spring Cloud AWS - EC2