You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by mailinglists <ma...@volkeralthaus.de> on 2019/08/05 11:48:15 UTC

(S)FTP component:fileExists=FAIL does not always work on Windows based FTP server/filesystem

Hi,
I have a problem with the (S)FTP component in combination with a Windows 
based FTP server, which means the file names are case insensitive.

Camel 2.24.0.

My route:
   from("file:xxx?include=(?i)test.txt")
    .to("sftp://myhost?fileExist=Fail")

On the target server there ist already a file named TEST.TXT (upper 
case!)

With a Linux based filessystem on the FTP server this works, it would 
not fail and afterwards there are two files named text.txt and TEST.TXT 
on the server.

But on a Windows server, the case sensitive filename matching 
(SftpOperations.java#existsFile) does not recognize the already existent 
file with the different case, therefore it does not fail
and the file would be overwritten! In this use case the "fileExist=Fail" 
does not work at all.

I am aware of that we are on the client side and do not know anything 
about the underlying file system of the FTP server, and it would be 
difficult to detect such
an environment, but in my opinion this is a bug. Perhaps there has to be 
another endpoint option how to exactly match the file names.

But for a quick solution: Anyone an idea of a workaround (preferably 
without having to write a custom component/endpoint)?


Thanks in advance
   Volker

Re: (S)FTP component:fileExists=FAIL does not always work on Windows based FTP server/filesystem

Posted by Volker Althaus <ma...@volkeralthaus.de>.
Am 2019-08-06 09:11, schrieb Pasquale Congiusti:
> Hey there,
> Windows filesystems are likely to be case insensitive, but I think 
> there
> may be some possibility to change it to be case sensitive. If you have
> access to the server may you recur to this option as a last resort
> workaround?

Unfortunately it's a customers server and I don't have any influence on 
the setup.

I think I would write a custom Sftp component with a customized 
existsFile method as a "quick" solution.

I will also file a Jira for a new endpoint option.


Thanks & regards
   Volker


> Cheers,
> Pasquale.
> 
> On Mon, Aug 5, 2019 at 2:18 PM Claus Ibsen <cl...@gmail.com> 
> wrote:
> 
>> Hi
>> 
>> Ah yeah maybe we can add an option to tell it to ignore cases on
>> files. I think its not good practice to have files named test.txt,
>> Test.txt and TEST.TXT etc.
>> You are welcome to log a JIRA
>> 
>> On Mon, Aug 5, 2019 at 1:48 PM mailinglists
>> <ma...@volkeralthaus.de> wrote:
>> >
>> > Hi,
>> > I have a problem with the (S)FTP component in combination with a Windows
>> > based FTP server, which means the file names are case insensitive.
>> >
>> > Camel 2.24.0.
>> >
>> > My route:
>> >    from("file:xxx?include=(?i)test.txt")
>> >     .to("sftp://myhost?fileExist=Fail")
>> >
>> > On the target server there ist already a file named TEST.TXT (upper
>> > case!)
>> >
>> > With a Linux based filessystem on the FTP server this works, it would
>> > not fail and afterwards there are two files named text.txt and TEST.TXT
>> > on the server.
>> >
>> > But on a Windows server, the case sensitive filename matching
>> > (SftpOperations.java#existsFile) does not recognize the already existent
>> > file with the different case, therefore it does not fail
>> > and the file would be overwritten! In this use case the "fileExist=Fail"
>> > does not work at all.
>> >
>> > I am aware of that we are on the client side and do not know anything
>> > about the underlying file system of the FTP server, and it would be
>> > difficult to detect such
>> > an environment, but in my opinion this is a bug. Perhaps there has to be
>> > another endpoint option how to exactly match the file names.
>> >
>> > But for a quick solution: Anyone an idea of a workaround (preferably
>> > without having to write a custom component/endpoint)?
>> >
>> >
>> > Thanks in advance
>> >    Volker
>> 
>> 
>> 
>> --
>> Claus Ibsen
>> -----------------
>> http://davsclaus.com @davsclaus
>> Camel in Action 2: https://www.manning.com/ibsen2
>> 

Re: (S)FTP component:fileExists=FAIL does not always work on Windows based FTP server/filesystem

Posted by Pasquale Congiusti <pa...@gmail.com>.
Hey there,
Windows filesystems are likely to be case insensitive, but I think there
may be some possibility to change it to be case sensitive. If you have
access to the server may you recur to this option as a last resort
workaround?

Cheers,
Pasquale.

On Mon, Aug 5, 2019 at 2:18 PM Claus Ibsen <cl...@gmail.com> wrote:

> Hi
>
> Ah yeah maybe we can add an option to tell it to ignore cases on
> files. I think its not good practice to have files named test.txt,
> Test.txt and TEST.TXT etc.
> You are welcome to log a JIRA
>
> On Mon, Aug 5, 2019 at 1:48 PM mailinglists
> <ma...@volkeralthaus.de> wrote:
> >
> > Hi,
> > I have a problem with the (S)FTP component in combination with a Windows
> > based FTP server, which means the file names are case insensitive.
> >
> > Camel 2.24.0.
> >
> > My route:
> >    from("file:xxx?include=(?i)test.txt")
> >     .to("sftp://myhost?fileExist=Fail")
> >
> > On the target server there ist already a file named TEST.TXT (upper
> > case!)
> >
> > With a Linux based filessystem on the FTP server this works, it would
> > not fail and afterwards there are two files named text.txt and TEST.TXT
> > on the server.
> >
> > But on a Windows server, the case sensitive filename matching
> > (SftpOperations.java#existsFile) does not recognize the already existent
> > file with the different case, therefore it does not fail
> > and the file would be overwritten! In this use case the "fileExist=Fail"
> > does not work at all.
> >
> > I am aware of that we are on the client side and do not know anything
> > about the underlying file system of the FTP server, and it would be
> > difficult to detect such
> > an environment, but in my opinion this is a bug. Perhaps there has to be
> > another endpoint option how to exactly match the file names.
> >
> > But for a quick solution: Anyone an idea of a workaround (preferably
> > without having to write a custom component/endpoint)?
> >
> >
> > Thanks in advance
> >    Volker
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Re: (S)FTP component:fileExists=FAIL does not always work on Windows based FTP server/filesystem

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Ah yeah maybe we can add an option to tell it to ignore cases on
files. I think its not good practice to have files named test.txt,
Test.txt and TEST.TXT etc.
You are welcome to log a JIRA

On Mon, Aug 5, 2019 at 1:48 PM mailinglists
<ma...@volkeralthaus.de> wrote:
>
> Hi,
> I have a problem with the (S)FTP component in combination with a Windows
> based FTP server, which means the file names are case insensitive.
>
> Camel 2.24.0.
>
> My route:
>    from("file:xxx?include=(?i)test.txt")
>     .to("sftp://myhost?fileExist=Fail")
>
> On the target server there ist already a file named TEST.TXT (upper
> case!)
>
> With a Linux based filessystem on the FTP server this works, it would
> not fail and afterwards there are two files named text.txt and TEST.TXT
> on the server.
>
> But on a Windows server, the case sensitive filename matching
> (SftpOperations.java#existsFile) does not recognize the already existent
> file with the different case, therefore it does not fail
> and the file would be overwritten! In this use case the "fileExist=Fail"
> does not work at all.
>
> I am aware of that we are on the client side and do not know anything
> about the underlying file system of the FTP server, and it would be
> difficult to detect such
> an environment, but in my opinion this is a bug. Perhaps there has to be
> another endpoint option how to exactly match the file names.
>
> But for a quick solution: Anyone an idea of a workaround (preferably
> without having to write a custom component/endpoint)?
>
>
> Thanks in advance
>    Volker



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2