I will have a look at the code and see what I can do.

A follow-up question: When using relative paths, why does Camel still start
with a CD? It makes sense to have that option when using absolute paths but
I don't really see the rational when using relative paths. By definition (I
think), the home directory is where you end up after login. A relative path
is relative to the home directory (which is where you end up initially)
which makes the CD command unnecessary.

/Bengt

2010/11/3 Claus Ibsen <[email protected]>

> On Wed, Nov 3, 2010 at 9:31 AM, Bengt Rodehav <[email protected]> wrote:
> > I have been using Camel 2.4 for sftp up until now. For several excellent
> > reasons I now want to upgrade to Camel 2.5 but it seems that the sftp
> > support has been "broken" - or at least it has changed from the previous
> > version. I have seen posts about the sftp changes on this list but I
> haven't
> > tested the changes until now (which I of course should have).
> >
>
> Yeah we called out for people to test it months ago. And also the RC
> for 2.5 is for people to test.
>
>
> > I've read the following thread
> >
> http://camel.465427.n5.nabble.com/How-to-change-directory-while-using-sftp-component-td2806817.html#a2807611
> > to
> > try to understand what has been done. However, the thread isn't that easy
> to
> > follow and I need to know:
> >
> > 1. What was the problem in the first place?
>
> camel-ftp did not work with all FTP servers (sftp or plain ftp)
>
> > 2. What has been changed in Camel 2.5 compared to 2.4?
>
> It now uses same "stepwise" manner as we do in Camel 1.x.
> For example some FTP server can only do authorization using this approach.
> Others can only traverse folders using this approach.
>
> > 3. What is not backwards compatible?
> >
>
> Only if your FTP server now has a problem. As said its hard to
> communicate with FTP servers across and have it working well.
>
>
> > My attempt to understand this lead me to the following answers (please
> > correct me if I'm wrong):
> >
> > 1. Some server(s) do not allow retrieval of files from other directories
> > than the working directory.
> >
> > 2. Camel now changes directory before retrieving the file and it does so
> in
> > a "stepwise" manner.
> >
> > 3. Presently I know that my sftp test against Serv-U (on Windows) doesn't
> > work. I'll elaborate a little bit about what seem to happen:
> >
> > First of all, I haven't yet tested to GET files just to PUT them.
> Regardless
> > if I'm using a relative path  like
> >
> >  *sftp://u...@localhost/sample/sample/file2sftp*
> >
> > or an absolute path like
> >
> >  *sftp://u...@localhost//temp/servu/user/sample/sample/file2sftp*
> >
> > I always get
> >
> >  *org.apache.camel.component.file.GenericFileOperationFailedException:
> > Cannot change directory to: /*
> >
>
> Camel uses the API of JSCH or Commons Net to get the home directory.
> And they may return "/" as home directory.
>
> An idea would be to introduce an option to control if Camel should CD
> into the home directory when it starts polling
> or not.
>
> It would be great if you could try to change the code in camel-ftp and
> see if you can get this fixed on your system.
> Then we can introduce such an option.
>
>
> > If I change a setting in Serv-U to "lock user in home directory" (which
> is
> > not the default), then Serv-U will translate "/" to the home directory
> and
> > it will work. However, I need to support situations where "/" is not
> > automatically translated to the home directory since this is very server
> > dependent. Currently I can't seem to do that. Without having looked at
> the
> > source code yet, it seems like Camel is always changing directory to "/"
> > before doing anything else. Why is that?
> >
> > Note that since Serv-U is running on Windows, when not "locking the user
> to
> > home directory", the absolute path "/" doesn't even exist. When using
> > Filezilla (client) to access Serv-U I notice that the syntax it uses for
> > changing directory (if I ask it to) is:
> >
> >  /C:/temp/servu/user/sample/sample/file2sftp
> >
> > The topmost directory that can be "changed to" is
> >
> >  /C:/temp
> >
> > Since Camel now seems to always start by changing to "/" it will never
> > succeed. Don't know if this is specific to Serv-U or of Windows sftp
> servers
> > in general.
> >
> > A couple of comments:
> >
> > - If some servers need to change the directory before retrieving (or
> > putting) files, then the behavior must be configurable since there will
> also
> > be servers that will not allow you to change the directory in this way.
> When
> > choosing between behaviors, go with what is already supported otherwise
> > existing applications will break. New behavior is best supported by
> adding
> > additional configuration options.
> >
> > - If a change of directory scheme is to be supported, then it must be
> > configurable whether to change the directory in "one go" or "stepwise"
> > (first to the top, then to the next level and so on). "The top" isn't
> always
> > "/".
> >
> > - I don't see how to use a relative path (which I have been doing
> before).
> > Even if I specify a relative path, Camel will try to change the directory
> to
> > "/" anyway. This is a backwards incompatible change. Is there a
> workaround I
> > can use if I upgrade to Camel 2.5?
> >
> > /Bengt
> >
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: [email protected]
> Web: http://fusesource.com
> Twitter: davsclaus
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>

Reply via email to