J'essaie de créer une route chameau pour transférer un fichier d'un serveur FTP vers un stockage AWS S3. J'ai écrit l'itinéraire suivantCamel aws-s3 ne fonctionne pas
private static class MyRouteBuilder extends RouteBuilder {
@Override
public void configure() throws Exception
{
from("sftp://<<ftp_server_name>>&noop=true&include=<<file_name>>...")
.process(new Processor(){
@Override
public void process(Exchange ex)
{
System.out.println("Hello");
}
})
.to("aws-s3://my-dev-bucket ?
accessKey=ABC***********&secretKey=12abc********+**********");
}
La question est, cela me donne l'exception suivante:
Exception in thread "main" org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> To[aws-s3://my-dev-bucket?accessKey=ABC*******************&secretKey=123abc******************** <<< in route: Route(route1)[[From[sftp://<<ftp-server>>... because of Failed to resolve endpoint: aws-s3://my-dev-bucket?accessKey=ABC***************&secretKey=123abc************** due to: The request signature we calculated does not match the signature you provided. Check your key and signing method.
J'ai ensuite essayé de le faire dans l'autre sens. c'est-à-dire écrire une méthode comme ceci:
public void boot() throws Exception {
// create a Main instance
main = new Main();
// enable hangup support so you can press ctrl + c to terminate the JVM
main.enableHangupSupport();
// bind MyBean into the registery
main.bind("foo", new MyBean());
// add routes
AWSCredentials awsCredentials = new BasicAWSCredentials("ABC*****************", "123abc*************************");
AmazonS3 client = new AmazonS3Client(awsCredentials);
//main.bind("client", client);
main.addRouteBuilder(new MyRouteBuilder());
main.run();
}
et d'invoquer en utilisant la variable liée #client. Cette approche ne donne aucune exception, mais le transfert de fichier ne fonctionne pas.
Pour vous assurer qu'il n'y a rien de mal à mon approche, j'ai essayé SSFE-SQS au lieu de aws-s3 et qui fonctionne très bien (les transferts de fichiers de succès à la file d'attente SQS)
Toute idée pourquoi cela se passe? Y a-t-il un problème de base avec le connecteur "aws-s3" pour camel?
Pouvez-vous utiliser l'exemple AWS SDK-S3 pour vérifier si votre titre a le droit d'accéder au service S3? –