Ich verwende Apache Camel 3.4.10 , um einige Dateien auf einen SFTP -Server hochzuladen, und seit fast einer Woche funktioniert dies nicht mehr und unten gibt es die Ausgabe, die ich erhalte:
2025-05-23 12:02:08,890 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:10,199 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:11,530 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:12,925 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:14,255 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:15,658 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:17,103 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:18,452 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:19,787 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:21,133 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:22,506 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
2025-05-23 12:02:22,508 ERROR [org.apache.camel.processor.errorhandler.DefaultErrorHandler:205] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Failed delivery for (MessageId: 44C4CB7F36787D0-000000000000001F on ExchangeId: 44C4CB7F36787D0-000000000000001F). Exhausted after delivery attempt: 11 caught: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
Message History (complete message history is disabled)
---------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor Elapsed (ms)
[selection-files ] [selection-files ] [from[file:///export/home/tsbulk_delivery?antInclude=*%2Fselection%2F*.xml&flat] [ 55166]
...
[selection-files ] [to1 ] [sftp::6323/tsbulk-prod?preferredAuthentications=publi] [ 0]
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
at org.apache.camel.component.file.remote.SftpOperations.doStoreFile(SftpOperations.java:1061)
at org.apache.camel.component.file.remote.SftpOperations.storeFile(SftpOperations.java:977)
at org.apache.camel.component.file.GenericFileProducer.writeFile(GenericFileProducer.java:290)
at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:173)
at org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:61)
at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66)
at org.apache.camel.processor.SendProcessor.lambda$process$2(SendProcessor.java:191)
at org.apache.camel.support.cache.DefaultProducerCache.doInAsyncProducer(DefaultProducerCache.java:327)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:190)
at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.redeliver(RedeliveryErrorHandler.java:895)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:193)
at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:64)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:185)
at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:398)
at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:492)
at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:245)
at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:206)
at org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:202)
at org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:116)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: 3: Permission denied.
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2830)
at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:561)
at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:509)
at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:464)
at org.apache.camel.component.file.remote.SftpOperations.doStoreFile(SftpOperations.java:1039)
... 25 more
Die seltsame Sache ist, dass ich, wenn ich eine Verbindung zum SFTP-Server mit WinSCP herstelle, tatsächlich sehen kann, dass die Dateien dort hochgeladen/aktualisiert werden.
Ich verwende Apache Camel 3.4.10 , um einige Dateien auf einen SFTP -Server hochzuladen, und seit fast einer Woche funktioniert dies nicht mehr und unten gibt es die Ausgabe, die ich erhalte: [code]2025-05-23 12:02:08,890 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:10,199 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:11,530 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:12,925 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:14,255 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:15,658 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:17,103 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:18,452 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:19,787 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:21,133 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:22,506 WARN [org.apache.camel.component.file.remote.RemoteFileProducer:87] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Writing file failed with: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml 2025-05-23 12:02:22,508 ERROR [org.apache.camel.processor.errorhandler.DefaultErrorHandler:205] (Camel (tsbulk-sftp-context) thread #1 - file:///export/home/tsbulk_delivery) Failed delivery for (MessageId: 44C4CB7F36787D0-000000000000001F on ExchangeId: 44C4CB7F36787D0-000000000000001F). Exhausted after delivery attempt: 11 caught: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml
Message History (complete message history is disabled) --------------------------------------------------------------------------------------------------------------------------------------- RouteId ProcessorId Processor Elapsed (ms) [selection-files ] [selection-files ] [from[file:///export/home/tsbulk_delivery?antInclude=*%2Fselection%2F*.xml&flat] [ 55166] ... [selection-files ] [to1 ] [sftp::6323/tsbulk-prod?preferredAuthentications=publi] [ 0]
Stacktrace --------------------------------------------------------------------------------------------------------------------------------------- : org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: tsbulk-prod/CH36158/tsbulk_delivery/selection/labsconfig1.xml at org.apache.camel.component.file.remote.SftpOperations.doStoreFile(SftpOperations.java:1061) at org.apache.camel.component.file.remote.SftpOperations.storeFile(SftpOperations.java:977) at org.apache.camel.component.file.GenericFileProducer.writeFile(GenericFileProducer.java:290) at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:173) at org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:61) at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66) at org.apache.camel.processor.SendProcessor.lambda$process$2(SendProcessor.java:191) at org.apache.camel.support.cache.DefaultProducerCache.doInAsyncProducer(DefaultProducerCache.java:327) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:190) at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.redeliver(RedeliveryErrorHandler.java:895) at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:193) at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:64) at org.apache.camel.processor.Pipeline.process(Pipeline.java:185) at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:398) at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:492) at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:245) at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:206) at org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:202) at org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:116) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: 3: Permission denied. at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2830) at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:561) at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:509) at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:464) at org.apache.camel.component.file.remote.SftpOperations.doStoreFile(SftpOperations.java:1039) ... 25 more [/code] Die seltsame Sache ist, dass ich, wenn ich eine Verbindung zum SFTP-Server mit WinSCP herstelle, tatsächlich sehen kann, dass die Dateien dort hochgeladen/aktualisiert werden.[code]protected StringBuilder buildTargetSftpEndpoint() { final StringBuilder builder = new StringBuilder(); builder.append("sftp:"); builder.append(config.getHost()); builder.append(":"); builder.append(config.getPort()); if(!config.getRootDirectoryName().startsWith("/")) builder.append("/"); builder.append(config.getRootDirectoryName()); builder.append("?preferredAuthentications=publickey"); builder.append("&fastExistsCheck=true"); builder.append("&greedy=true"); builder.append("&throwExceptionOnConnectFailed=true"); builder.append("&initialDelay=0"); builder.append("&stepwise=false"); builder.append("&reconnectDelay=0"); builder.append("&serverAliveCountMax=0"); builder.append("&serverAliveInterval=0"); builder.append("&username="); builder.append(config.getUsername()); builder.append("&privateKeyFile="); builder.append(config.getSshPrivateKey()); builder.append("&knownHostsFile="); builder.append(config.getSshKnownHostsFile()); builder.append("&maximumReconnectAttempts="); builder.append(maxRetries);
return builder; } < /code> Der Dateiendpunkt ist wie folgt definiert: < /p> private String buildSourceEndpointUri() { final StringBuilder builder = new StringBuilder(); builder.append("file:"); if(!getBaseDirectory().startsWith("/")) builder.append("/"); builder.append(getBaseDirectory()); builder.append("?recursive=true"); builder.append("&flatten=false"); builder.append("&startingDirectoryMustExist=true"); builder.append("&noop=true"); builder.append("&idempotent=true"); builder.append("&idempotentKey=${file:name}-${file:modified}"); builder.append("&greedy=true"); builder.append("&initialDelay=0"); builder.append("&antInclude="); builder.append("*/"); builder.append(selectionSpace.getDir()); builder.append("/*.xml");
return builder.toString(); } < /code> Die Route ist wie folgt definiert: < /p> @PostConstruct private void setup() { processor = new FilePathAdjusterProcessor(getBaseDirectory()); }
@Override public void configure() { onException(FileNotFoundException.class).continued(true); errorHandler(defaultErrorHandler().maximumRedeliveries(max(0, config.getMaxRetries())).redeliveryDelay(max(0, config.getRetriesDelayMs())));
exchange.getMessage().setHeader(OVERRULE_FILE_NAME, extendedPath); } } < /code> Der folgende Code überprüft dasselbe, aber nur mit JSCH < /p> private static final int PORT = 6323; private static final String USERNAME = "tsbulk"; private static final String HOST = ""; private static final String ROOT_DIRECTORY = "/tsbulk-prod"; private static final String PRIVATE_KEY = ""
Leider gibt die Methode getExitstatus () immer -1 zurück, daher kann ich das nicht verwenden, um mir zu sagen, ob ein Upload eines Datei funktioniert oder nicht. Ich habe versucht, die GetInputStream...
Ich betreibe mit Paramiko einen benutzerdefinierten SFTP-Server, der Videodateien von NVR-Kameras empfängt und in einen Cloud-Speicher hochlädt. Der Ablauf ist einfach: Der Client (NVR) stellt eine...
Ich habe die folgenden Codezeilen in meiner Apache Camel-Route:
.split().method(SomeDataCacheSplitter.class, split ).streaming()
.marshal(gsonDataFormat)
.aggregate(constant(true), new...
Ich habe die obige Konfiguration. und ich habe öffentlichen Schlüssel unter autorisierten Schlüssel ~/.Ssh2 auf dem Server. Ich bekomme immer noch die verursacht durch: com.jcraft.jsch.jSchException:...