Programming: Storage Application for Exchanging Large Files

2012-02-20 15:42

Storage Application for Exchanging Large Files

At Onemedia, we often have to exchange very large files with our clients – files too large to be sent by email, including videos with several hundred megabytes. In most cases, third-party solutions such as Dropbox or Sendspace  cannot be used due to data privacy protection issues.

 

Until recently, we had been using our own FTP server. However, training users to correctly use the FTP client, as well as maintaining the login information and the server itself gradually became too time-consuming, especially on the client side. In addition, files often remained on the server long after the download was complete – there were no records of these downloads, and it was unclear when the files could be removed from the server.

 

Therefore, we have developed an application which provides similar functions to Sendspace but can be hosted on our own servers, eliminating the need to transfer files to a third-party provider. The workflow for transferring a file is as follows:

 

  • Upload a file via web interface to our servers
  • User/client receives a link to the uploaded file
  • The link can be used for a period of 24 hours for downloading the file
  • Afterwards, the file is automatically deleted from the server.

 

Since the transfer of large files can be time-consuming, a progress bar informs the user in real-time about the upload status. The link to the uploaded file can also be sent directly by email to the recipient. The link is valid for 24 hours; after that, the files are automatically deleted from the server. By using a special delete link, files can also be deleted at an earlier point in time.

 

This application was developed using PHP, Symfony2 (web framework), Doctrine2 (Object Relational Mapper) and APC (byte code cache for the progress bar). The solution runs on a high-performance LAMP Stack on Ubuntu Linux.

 

Go back