1
votes

Est-il possible d'utiliser Spring Cloud AWS pour se connecter à un stockage compatible S3 sur site?

Est-il possible d'utiliser Spring Cloud AWS (Spring Cloud AWS Core / Spring Cloud AWS Context) pour se connecter à S3 sur site (comme Minio / SwiftStack) qui prend en charge l'API S3 complète?

En bref, l'URL du service S3 doit être encadrée dans la logique de mon application au lieu du nuage de printemps AWS créant la valeur par défaut basée sur la région.


0 commentaires

3 Réponses :


0
votes

Oui, vous devriez pouvoir le faire. J'ai testé cloudfoundry avec le blobstore MinIO compatible S3 en tant que blobstore. Vous pouvez installer le serveur MinIO et changer rapidement de point de terminaison au lieu de S3.


3 commentaires

Comment configurer un nouveau point de terminaison? Les seules propriétés que je vois disponibles sont les suivantes: cloud.spring. io / spring-cloud-aws / reference / html / appendix.htm‌ l


Vous pouvez vous référer aux blogs ci-dessous pour savoir comment accéder au client s3 avec minio et backend. S'il vous plaît, faites-moi savoir. blogs.ashrithgn.com/... docs.min.io/docs/…


Aucun de ceux-ci n'indique comment utiliser un service AWS tiers avec Spring Cloud AWS / la configuration Spring Cloud, mais plutôt comment y accéder via des beans AWS ou Minio normalement configurés.



0
votes

Vous pouvez vous référer aux blogs ci-dessous pour savoir comment accéder au client s3 avec minio et backend. Merci de me le faire savoir.

https: // blogs.ashrithgn.com/spring-boot-uploading-and-downloading-file-from-minio-object-store/

https : //docs.min.io/docs/how-to-use-aws-sdk-for-java-with-minio-server.html


1 commentaires

Aucun de ceux-ci n'indique comment utiliser un service AWS tiers avec Spring Cloud AWS / le Spring Cloud config, mais plutôt comment y accéder via des beans AWS ou Minio normalement configurés.



0
votes

Le code de configuration Spring Cloud est configuré pour ne pas créer son propre bean AmazonS3 s'il en est déjà fourni par l'application. Par conséquent, si l'application fournit son propre bean AmazonS3 , ce bean sera utilisé comme client S3 à la place.

J'utilise Spring Cloud AWS pour accéder à AWS d'Amazon dans l'application en cours d'exécution, et un Dockerized MinIO pour les tests d'intégration. J'ai configuré le bean AmazonS3 de mon test basé sur exemple de code dans la documentation de MinIO . Cette approche devrait également fonctionner pour votre situation de connexion de l'application réelle à MinIO.

MinIoConfiguration.java

cloud:
  aws:
    credentials:
      accessKey: MY_ACCESS_KEY
      secretKey: MY_SECRET_KEY
    region.static: us-east-1

my-app:
  aws:
    service-endpoint: https://example.invalid:9000

application.yml

import com.amazonaws.ClientConfiguration;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MinIoConfiguration {
    @Value("${cloud.aws.credentials.accessKey}")
    private String awsAccessKey;

    @Value("${cloud.aws.credentials.secretKey}")
    private String awsSecretKey;

    @Value("${cloud.aws.region.static}")
    private String awsRegion;

    @Value("${my-app.aws.service-endpoint}")
    private String awsServiceEndpoint;

    @Bean
    public AmazonS3 amazonS3() {
        return AmazonS3Client.builder()
                .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(awsServiceEndpoint, awsRegion))
                .withPathStyleAccessEnabled(true)
                .withClientConfiguration(new ClientConfiguration().withSignerOverride("AWSS3V4SignerType"))
                .withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(awsAccessKey, awsSecretKey)))
                .build();
    }
}


0 commentaires