Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm planning a server application that will handle files uploaded via FTP. The application must parse text documents that it receives and write them to a database (most likely a document-oriented database like Mongo). And the application must also relay all large binary files it receives to Amazon S3 for storage and hosting. I'd like to manage all aspects of the FTP server programmatically. For example, when a user registers via a web page the application should be able to create the user account in the database and provision a directory on the server for receiving files. I'm using a Linux server but am otherwise open to considering any programming language or framework. I experimented with VSFTPD but didn't like the way the application relies on config files and the creation of users and directories via the command line. Can someone please recommend what server framework I should consider? I'm a little biased toward solutions that leverage Javascript/Nodejs or Python. However, I'm open to anything that can run on a Linux box.

share|improve this question

2 Answers 2

up vote 2 down vote accepted

PAM will let you put the userdb anywhere you like.

share|improve this answer
    
It sounds like PAM is the way to go. Can you suggest some resources for getting started with integrating PAM into an app? I've googled the topic but am not finding any tutorials geared to those looking into PAM for the first time. –  hughesdan Jun 4 '12 at 10:49
    
Many apps already use PAM, including VSFTPD. It's simply a matter of telling it to use PAM, and then configuring the PAM stack appropriately. –  Ignacio Vazquez-Abrams Jun 4 '12 at 17:11

Pure-FTPd should do what you're looking for.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.