The use case is a bit particular because in most cases you'd want to have some 
isolation between the file system views - especially when using VFS 
authentication.

But your case is proof that it has its uses, especially when using non-VFS 
authentication, and it should not be impossible to implement, so please do log 
an issue.

If you don't have a SF account I can do it myself as well.

Cheers,
Frank

> Date: Wed, 20 Oct 2010 08:34:39 -0200
> Subject: Re: FtpServer - Receive files by memory
> From: [email protected]
> To: [email protected]
> 
> Frank,
> 
> thanks for your attention.
> 
> Should I open a ticket or issue at the project asking you to provide it? I
> mean, do you think its a good idea to the project supporting resolve file
> instead of create new file system?
> 
> Best regards,
> 
> On Wed, Oct 20, 2010 at 7:18 AM, Frank van der Kleij <[email protected]>wrote:
> 
> >
> > You're right - it does not work. It is because the virtual file system
> > instance is not shared between sessions. Every time the root path is
> > resolved (when a user logs in) it will create a new ram file system - not
> > very useful for you I guess.
> >
> > I only used it with a persistent file system so I didn't think of that.
> >
> > Sorry,
> >
> > Frank
> >
> > > Date: Tue, 19 Oct 2010 11:22:04 -0200
> > > Subject: Re: FtpServer - Receive files by memory
> > > From: [email protected]
> > > To: [email protected]
> > >
> > > Im trying the commons-vfs-2.0-SNAPSHOT.jar now ...
> > >
> > > Ive downloaded source from svn and Ive installed maven2. May you help me
> > how
> > > to compile this jar (commons-vfs-2.0-SNAPSHOT.jar) ? What command line
> > args
> > > should I use in maven?
> > >
> > > Thank you,
> > >
> > > 2010/10/18 Danilo Rosetto Muñoz <[email protected]>
> > >
> > > > Hi all,
> > > >
> > > > Sorry for the message size. Last mail went to the spam .. Probally
> > beacause
> > > > I posted some code and log ... I dont know if you allow posting code
> > here
> > > > ... If dont, please let me know. In order to provide you more
> > information, I
> > > > tried snipt.org (a website for sharing code snippets).
> > > >
> > > > After many tests, I could reach the following code that I think it
> > could
> > > > show you what is going on:
> > > > http://snipt.org/kpomo/
> > > >
> > > > When the server starts, I do the following commands:
> > > >
> > > >> ftp> open localhost
> > > >
> > > > Connected to danilo-pc.
> > > >
> > > > 220 Service ready for new user.
> > > >
> > > > User (danilo-pc:(none)): danilo
> > > >
> > > > 331 User name okay, need password for danilo.
> > > >
> > > > Password:
> > > >
> > > > 550 Requested action not taken.
> > > >
> > > > Login fail.
> > > >
> > > >
> > > > Here is the log file:
> > > > http://snipt.org/kpong/
> > > >
> > > > Like I've comment on the code, when I test directories, first time I
> > get ok
> > > > and second time no ... This seems to occur based on authenticate method
> > when
> > > > it returns VsfInfo.
> > > >
> > > > Im using these libs:
> > > >
> > > >> commons-vfs-1.0.jar
> > > >
> > > > ftplet-api-1.0.5.jar
> > > >
> > > > ftpserver-core-1.0.5.jar
> > > >
> > > > mina-core-2.0.0-RC1.jar
> > > >
> > > > slf4j-api-1.5.2.jar
> > > >
> > > > slf4j-log4j12-1.5.2.jar
> > > >
> > > > vfsutils-ftpserver-0.1.0-SNAPSHOT.jar
> > > >
> > > > vfsutils-utils-0.1.0-SNAPSHOT.jar
> > > >
> > > >
> > > > Sorry again for sending too many information.
> > > >
> > > > Thanks in advance,
> > > >
> > > >
> > > > 2010/10/18 Danilo Rosetto Muñoz <[email protected]>
> > > >
> > > > Hi, I have this code:
> > > >>
> > > >> FtpServerFactory serverFactory = new FtpServerFactory();
> > > >>
> > > >>>  ListenerFactory factory = new ListenerFactory();
> > > >>
> > > >>  factory.setPort(21);
> > > >>
> > > >>  serverFactory.addListener("default", factory.createListener());
> > > >>
> > > >>
> > > >>>  serverFactory.setFileSystem(new VfsFileSystemFactory());
> > > >>
> > > >>
> > > >>>  VfsUser user = new VfsUser();
> > > >>
> > > >>  user.setName("danilo");
> > > >>
> > > >>  user.setPassword("danilo");
> > > >>
> > > >>  user.setHomeDirectory("ram://ftp/danilo");
> > > >>
> > > >>  user.setEnabled(true);
> > > >>
> > > >>   FileSystemManager fsm = VFS.getManager();
> > > >>
> > > >>   FileObject root = fsm.resolveFile("ram://root");
> > > >>
> > > >>  FileObject rootDir = fsm.createVirtualFileSystem(root);
> > > >>
> > > >>  rootDir.createFolder();
> > > >>
> > > >>   FileObject homeDir = rootDir.resolveFile("ram://root/danilo");
> > > >>
> > > >>  homeDir.createFolder();
> > > >>
> > > >>   VfsInfo vfsInfo = new VfsInfo(rootDir, homeDir, true);
> > > >>
> > > >>  user.setVfsInfo(vfsInfo);
> > > >>
> > > >>   List<Authority> authorities = new ArrayList<Authority>();
> > > >>
> > > >>  authorities.add(new WritePermission());
> > > >>
> > > >>  user.setAuthorities(authorities);
> > > >>
> > > >>   VfsUserManager um = new VfsUserManager();
> > > >>
> > > >>  um.save(user);
> > > >>
> > > >>   serverFactory.setUserManager(um);
> > > >>
> > > >>
> > > >>>  FtpServer server = serverFactory.createServer();
> > > >>
> > > >>  server.start();
> > > >>
> > > >>
> > > >> I'm using the following libs:
> > > >> commons-vfs-1.0.jar
> > > >> ftplet-api-1.0.5.jar
> > > >> ftpserver-core-1.0.5.jar
> > > >> mina-core-2.0.0-RC1.jar
> > > >> slf4j-api-1.5.2.jar
> > > >> slf4j-log4j12-1.5.2.jar
> > > >> vfsutils-ftpserver-0.1.0-SNAPSHOT.jar
> > > >> vfsutils-utils-0.1.0-SNAPSHOT.jar
> > > >>
> > > >> The code works and starts de server ok, but I have the following error
> > > >> during authentication:
> > > >>
> > > >>> ftp> open localhost
> > > >>
> > > >> Conectado a danilo-pc.
> > > >>
> > > >> 220 Service ready for new user.
> > > >>
> > > >> Usuário (danilo-pc:(none)): danilo
> > > >>
> > > >> 331 User name okay, need password for danilo.
> > > >>
> > > >> Senha:
> > > >>
> > > >> 530 Authentication failed.
> > > >>
> > > >>
> > > >> Do you think updating to commons-vfs-2.0-SNAPSHOT.jar may help?
> > > >>
> > > >> Thank you,
> > > >>
> > > >> On Mon, Oct 18, 2010 at 12:26 PM, Frank van der Kleij <
> > [email protected]>wrote:
> > > >>
> > > >>>
> > > >>> I compiled it; you can first try with VFS 1.0 if you want, the
> > interfaces
> > > >>> didn't change that much.
> > > >>>
> > > >>>
> > > >>> > Date: Mon, 18 Oct 2010 11:56:31 -0200
> > > >>> > Subject: Re: FtpServer - Receive files by memory
> > > >>> > From: [email protected]
> > > >>> > To: [email protected]
> > > >>> >
> > > >>> > I cant find commons-vfs-2.0-SNAPSHOT.jar ... I tried google,
> > project
> > > >>> page
> > > >>> > (apache) and sourceforge ...
> > > >>> >
> > > >>> > I found
> > > >>> http://svn.apache.org/repos/asf/commons/proper/vfs/branches/VFS-2.0/
> > > >>> > ..Should
> > > >>> > I download code and compile or do you have it in some repository?
> > > >>> >
> > > >>> > Best regards,
> > > >>> >
> > > >>> > On Mon, Oct 18, 2010 at 11:29 AM, Frank van der Kleij <
> > > >>> [email protected]>wrote:
> > > >>> >
> > > >>> > >
> > > >>> > > I think you'd better use commons-vfs-2.0-SNAPSHOT.jar. You should
> > > >>> also add
> > > >>> > > vfsutils-ftpserver-0.1.0-SNAPSHOT.jar and
> > > >>> vfsutils-utils-0.1.0-SNAPSHOT.jar.
> > > >>> > >
> > > >>> > > Then to use it you should use the filesystem class provided in
> > the
> > > >>> vfsutils
> > > >>> > > libraries
> > (org.vfsutils.ftpserver.filesystem.VfsFileSystemFactory)
> > > >>> and
> > > >>> > > configure it, see
> > > >>> > > http://vfs-utils.sourceforge.net/ftpserver/configuration.html
> > > >>> > >
> > > >>> > > Frank
> > > >>> > >
> > > >>> > > > Date: Mon, 18 Oct 2010 09:10:08 -0200
> > > >>> > > > Subject: Re: FtpServer - Receive files by memory
> > > >>> > > > From: [email protected]
> > > >>> > > > To: [email protected]
> > > >>> > > >
> > > >>> > > > I was trying to implement use of VSF when you give me this tip.
> > > >>> > > >
> > > >>> > > > I check the website you provided (
> > > >>> > > > http://vfs-utils.sourceforge.net/ftpserver/index.html):
> > > >>> > > > *To use this bridge you should just add the VFS libraries, the
> > VFS
> > > >>> FTP
> > > >>> > > > Server library and, if needed, your custom VFS Provider and its
> > > >>> > > dependencies
> > > >>> > > > to the common/lib directory of your Apache FTP Server
> > > >>> installation.*
> > > >>> > > >
> > > >>> > > > So, I've added the following libs to my project:
> > > >>> > > > commons-vfs-1.0.jar
> > > >>> > > > ftplet-api-1.0.5.jar
> > > >>> > > > ftpserver-core-1.0.5.jar
> > > >>> > > > mina-core-2.0.0-RC1.jar
> > > >>> > > > slf4j-api-1.5.2.jar
> > > >>> > > > slf4j-log4j12-1.5.2.jar
> > > >>> > > >
> > > >>> > > > <http://vfs-utils.sourceforge.net/ftpserver/index.html>The FTP
> > > >>> server
> > > >>> > > > started and works, but doesn´t with VSF. This is code I'm
> > using:
> > > >>> > > >
> > > >>> > > > > FtpServerFactory serverFactory = new FtpServerFactory();
> > > >>> > > >
> > > >>> > > >  ListenerFactory factory = new ListenerFactory();
> > > >>> > > >
> > > >>> > > > factory.setPort(21);
> > > >>> > > >
> > > >>> > > > serverFactory.addListener("default", factory.createListener());
> > > >>> > > >
> > > >>> > > >
> > > >>> > > > > PropertiesUserManagerFactory userManagerFactory = new
> > > >>> > > > > PropertiesUserManagerFactory();
> > > >>> > > >
> > > >>> > > > userManagerFactory.setFile(new
> > File("etc/ftp-users.properties"));
> > > >>> > > >
> > > >>> > > > userManagerFactory.setPasswordEncryptor(new
> > > >>> SaltedPasswordEncryptor());
> > > >>> > > >
> > > >>> > > >
> > > >>> > > > > BaseUser user = new BaseUser();
> > > >>> > > >
> > > >>> > > > user.setName("danilo");
> > > >>> > > >
> > > >>> > > > user.setPassword("mypass");
> > > >>> > > >
> > > >>> > > > user.setHomeDirectory("ram://ftp/danilo");
> > > >>> > > >
> > > >>> > > > user.setEnabled(true);
> > > >>> > > >
> > > >>> > > >  List<Authority> authorities = new ArrayList<Authority>();
> > > >>> > > >
> > > >>> > > > authorities.add(new WritePermission());
> > > >>> > > >
> > > >>> > > > user.setAuthorities(authorities);
> > > >>> > > >
> > > >>> > > >
> > > >>> > > > > UserManager um = userManagerFactory.createUserManager();
> > > >>> > > >
> > > >>> > > > um.save(user);
> > > >>> > > >
> > > >>> > > >  serverFactory.setUserManager(um);
> > > >>> > > >
> > > >>> > > >
> > > >>> > > > > FtpServer server = serverFactory.createServer();
> > > >>> > > >
> > > >>> > > > server.start();
> > > >>> > > >
> > > >>> > > >
> > > >>> > > > Test creating a dir:
> > > >>> > > >
> > > >>> > > > > ftp> mkdir test
> > > >>> > > >
> > > >>> > > > 550 Can't create directory /test.
> > > >>> > > >
> > > >>> > > >
> > > >>> > > > Test uploading file:
> > > >>> > > >
> > > >>> > > > > ftp> send
> > > >>> > > >
> > > >>> > > > Arquivo local c:/a.rar
> > > >>> > > >
> > > >>> > > > Arquivo remoto a.rar
> > > >>> > > >
> > > >>> > > > 200 Command PORT okay.
> > > >>> > > >
> > > >>> > > > 150 File status okay; about to open data connection.
> > > >>> > > >
> > > >>> > > > 551 /a.rar: Error on output file.
> > > >>> > > >
> > > >>> > > >
> > > >>> > > > Any ideas ?
> > > >>> > > > Thanks a lot,
> > > >>> > > >
> > > >>> > > > On Sun, Oct 17, 2010 at 7:22 PM, Frank van der Kleij <
> > > >>> [email protected]
> > > >>> > > >wrote:
> > > >>> > > >
> > > >>> > > > >
> > > >>> > > > > Another option - though one that gives you slightly less
> > control
> > > >>> is to
> > > >>> > > use
> > > >>> > > > > the VFS filesystem plugin for the FTP server (
> > > >>> > > > > http://vfs-utils.sourceforge.net/ftpserver/index.html)
> > because
> > > >>> then
> > > >>> > > you
> > > >>> > > > > can use the ram:// filesystem (
> > > >>> > > > > http://commons.apache.org/vfs/filesystems.html#ram) that
> > works
> > > >>> on
> > > >>> > > > > memory.Frank
> > > >>> > > > > > Date: Fri, 15 Oct 2010 17:26:40 +0200
> > > >>> > > > > > Subject: Re: FtpServer - Receive files by memory
> > > >>> > > > > > From: [email protected]
> > > >>> > > > > > To: [email protected]
> > > >>> > > > > >
> > > >>> > > > > > 2010/10/15 Danilo Rosetto Muñoz <[email protected]>:
> > > >>> > > > > > > I would like to know some way to get FTP received files
> > > >>> directly
> > > >>> > > from
> > > >>> > > > > > > memory. I mean redirect file transfers to the memory and
> > > >>> listening
> > > >>> > > > > them. I
> > > >>> > > > > > > want this in order to embbeded a FTP Server on my app and
> > > >>> handling
> > > >>> > > new
> > > >>> > > > > > > files through memory without using filesystem.
> > > >>> > > > > >
> > > >>> > > > > > The best way of doing this would be using an in-memory file
> > > >>> system
> > > >>> > > > > > (implementing FileSystemFactory, FileSystemView and
> > FtpFile).
> > > >>> We do
> > > >>> > > > > > not supply one, but it would certainly be possible to
> > implement
> > > >>> one.
> > > >>> > > > > >
> > > >>> > > > > > /niklas
> > > >>> > > > >
> > > >>> > > > >
> > > >>> > > >
> > > >>> > > >
> > > >>> > > >
> > > >>> > > > --
> > > >>> > > > Danilo Rosetto Muñoz
> > > >>> > > > [email protected]
> > > >>> > > > http://munozdanilo.googlepages.com
> > > >>> > >
> > > >>> > >
> > > >>> >
> > > >>> >
> > > >>> >
> > > >>> > --
> > > >>> > Danilo Rosetto Muñoz
> > > >>> > [email protected]
> > > >>> > http://munozdanilo.googlepages.com
> > > >>>
> > > >>>
> > > >>
> > > >>
> > > >>
> > > >> --
> > > >> Danilo Rosetto Muñoz
> > > >> [email protected]
> > > >> http://munozdanilo.googlepages.com
> > > >>
> > > >
> > > >
> > > >
> > > > --
> > > > Danilo Rosetto Muñoz
> > > > [email protected]
> > > > http://munozdanilo.googlepages.com
> > > >
> > >
> > >
> > >
> > > --
> > > Danilo Rosetto Muñoz
> > > [email protected]
> > > http://munozdanilo.googlepages.com
> >
> >
> 
> 
> 
> -- 
> Danilo Rosetto Muñoz
> [email protected]
> http://munozdanilo.googlepages.com
                                          

Reply via email to