J'ai une application Spring Boot qui se trouve dans notre centre de données interne, qui traite les fichiers d'un dossier spécifique sur l'hôte.
nous voulions déployer cela sur aws et voulions utiliser le compartiment s3 pour télécharger des fichiers pour le traitement.
existe-t-il un moyen d'ajouter de l'espace de seau s3 en tant que volume de docker?
Aucun volume Docker n'est destiné au montage de lecteurs sur la machine ( https://docs.docker.com/storage/volumes/ )
Vous pouvez utiliser l'API S3 pour gérer votre compartiment à partir du conteneur Docker ( https://docs.aws.Amazon.com/AmazonS3/latest/API/Welcome.html )
D'autres réponses ont correctement indiqué que: AWS S3 est un magasin d'objets et vous ne pouvez pas le monter en tant que volume sur Docker.
Cela étant dit, l'utilisation de S3 avec l'application Spring est super facile et il existe un cadre développé appelé spring-cloud
. spring-cloud
fonctionne parfaitement avec AWS.
Voici un exemple de code:
public void uploadFiles(File file, String s3Url) throws IOException {
WritableResource resource = (WritableResource) resourceLoader.getResource(s3Url);
try (OutputStream outputStream = resource.getOutputStream()) {
Files.copy(file.toPath(), outputStream);
}
}
Vous pouvez trouver un blog détaillé sur ici.