Spring Cloud AWS - S3

Dans cet article rapide, nous allons explorer le support AWS fourni dans la plate-forme Spring Cloud - en nous concentrant sur S3.

Série de contenu: cet article fait partie d'une série: • Spring Cloud AWS - S3 (article actuel) • Spring Cloud AWS - EC2

• Spring Cloud AWS - RDS

• Spring Cloud AWS - Prise en charge de la messagerie

1. Téléchargement S3 simple

Commençons par accéder facilement aux fichiers stockés sur S3:

@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. Téléchargement S3 simple

Nous pouvons également télécharger des fichiers:

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. Structure de l'URL S3

La s3Url est représentée au format:

s3:///

Par exemple, si un fichier bar.zip se trouve dans le dossier foo sur un bucket my-s3- bucket, l'URL sera:

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

Et nous pouvons également télécharger plusieurs objets à la fois en utilisant ResourcePatternResolver et la correspondance de modèle de style Ant:

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

Les URL peuvent contenir des caractères génériques au lieu de noms exacts.

Par exemple, l' URL s3: //my-s3-bucket/**/a*.txt recherchera de manière récursive tous les fichiers texte dont le nom commence par « a » dans n'importe quel dossier de my-s3-bucket .

Notez que les beans ResourceLoader et ResourcePatternResolver sont créés au démarrage de l'application à l'aide de la fonction de configuration automatique de Spring Boot.

4. Conclusion

Et nous avons terminé - il s'agit d'une introduction rapide et précise à l'accès à S3 avec Spring Cloud AWS.

Dans le prochain article de la série, nous explorerons le support EC2 du framework.

Comme d'habitude, les exemples sont disponibles à l'adresse over sur GitHub.

Suivant » Spring Cloud AWS - EC2