SFTP in Camel populates wrong parent folder for a file -


using camel sftp consumer polls remote folder files, have following endpoint configuration:

sftp://user@server:22\     ?password=xxx\     &delete=false\     &move=.done\     &localworkdirectory=/tmp\     &delay=60000 

(\ wrap end lines in yaml, gets stitched on 1 line.)

with setup when file gets downloaded user's home directory, tries move remote file .done directory (as per camel documentation, ".done" should enough). however, exception:

org.apache.camel.component.file.genericfileoperationfailedexception -      cannot create directory: /.done (could because of denied permissions) 

i have permissions since create directory , rename file manually using interactive sftp command in bash.

i have debugged through camel's processing , found out parent folder of file (camelfileparent header) evaluated "/" means final path rename file evaluated "//.done/some-file-name.csv". is, of course, wrong , fails above exception.

the question why can't resolve home directory? when try running pwd in interactive sftp command, resolves correctly "/home/user".

after debugging more found out how camel resolving parent folder path, , it's purely based on file class, , not query remote server parent folder:

        string name = getrelativefilepath();         file path;         if (name != null) {             path = new file(endpointpath, name);         } else {             path = new file(endpointpath);         }         parent = path.getparent(); 

where endpointpath "" , name "some-file-name.csv" , getparent() call resolved "/".

what can correct home path (without hard-coding path endpoint configuration)? bug?


Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - jQuery UI Splitter/Resizable for unlimited amount of columns -

javascript - IE9 error '$'is not defined -