Spring Cloud AWS - S3

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.

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

Les3Url est représenté au format:

s3:///


Par exemple, si un fichierbar.zip se trouve dans le dossierfoo sur un compartimentmy-s3-bucket, alors l'URL sera:

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

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

@Autowired
ResourcePatternResolver resourcePatternResolver;

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, less3://my-s3-bucket/*/a.txt URL chercheront récursivement tous les fichiers texte dont le nom commence par «a» dans n'importe quel dossier desmy-s3-bucket.

Notez que les beansResourceLoader etResourcePatternResolver 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 lesnext article of the series, nous explorerons la prise en charge EC2 du framework.

Comme d'habitude, les exemples sont disponiblesover on GitHub.