Spring Cloud AWS - S3

In dit korte artikel gaan we de AWS-ondersteuning verkennen die wordt geboden in het Spring Cloud-platform - met de nadruk op S3.

Contentreeks: Dit artikel maakt deel uit van een reeks: • Spring Cloud AWS - S3 (huidig ​​artikel) • Spring Cloud AWS - EC2

• Spring Cloud AWS - RDS

• Spring Cloud AWS - Ondersteuning voor berichten

1. Eenvoudige S3-download

Laten we beginnen met het gemakkelijk openen van bestanden die zijn opgeslagen op S3:

@Autowired ResourceLoader resourceLoader; openbare ongeldige downloadS3Object (String s3Url) gooit IOException {Resource resource = resourceLoader.getResource (s3Url); Bestand gedownload S3Object = nieuw bestand (resource.getFilename ()); probeer (InputStream inputStream = resource.getInputStream ()) {Files.copy (inputStream, gedownloadS3Object.toPath (), StandardCopyOption.REPLACE_EXISTING); }}

2. Eenvoudige S3-upload

We kunnen ook bestanden uploaden:

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

3. S3 URL-structuur

De s3Url wordt weergegeven met behulp van het formaat:

S3: ///

Als bijvoorbeeld een bestand bar.zip staat in de map foo op een mijn-s3-bucket bucket, dan is de URL:

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

En we kunnen ook meerdere objecten tegelijk downloaden met ResourcePatternResolver en de patroonafstemming in Ant-stijl:

privé ResourcePatternResolver resourcePatternResolver; @Autowired public void setupResolver (ApplicationContext applicationContext, AmazonS3 amazonS3) {this.resourcePatternResolver = nieuw PathMatchingSimpleStorageResourcePatternResolver (amazonS3, applicationContext); } openbare ongeldige downloadMultipleS3Objects (String s3Url) gooit IOException {Resource [] allFileMatchingPatten = this.resourcePatternResolver .getResources (s3Url); // ...}}

URL's kunnen jokertekens bevatten in plaats van exacte namen.

Bijvoorbeeld de s3: //my-s3-bucket/**/a*.txt URL zoekt recursief naar alle tekstbestanden waarvan de naam begint met ‘een‘In een map van het mijn-s3-bucket.

Merk op dat de bonen ResourceLoader en ResourcePatternResolver worden gemaakt bij het opstarten van de applicatie met behulp van de automatische configuratiefunctie van Spring Boot.

4. Conclusie

En we zijn klaar - dit is een snelle en duidelijke inleiding tot toegang tot S3 met Spring Cloud AWS.

In het volgende artikel van de serie zullen we de EC2-ondersteuning van het raamwerk onderzoeken.

Zoals gewoonlijk zijn de voorbeelden beschikbaar op GitHub.

De volgende » Spring Cloud AWS - EC2