SysAdmin's Journey

Product Review: FileRun PHP File Management System

large_filerun.jpg

At work, we had a need for software that addresses a specific problem. We have a bunch of users that need to share files in a secure manner via HTTPS, but the app has to be drop-dead easy. Being an e-commerce shop, we could have written our own, but we didn’t have the time and resources. We could have outsourced it to box.net or a similar service, but the company frowns upon outsourced solutions. I happened to stumble upon FileRun, and I have to admit that I’ve been very impressed. Read on for the full review.

First things first, let’s get the negatives out of the way. There’s just a few, and they didn’t impact us:

  • FileRun encrypts it’s PHP code using Zend Guard, making the majority of their code not viewable by the end user. In order to run Zend Guard encrypted binaries, you have to install a PHP module to run them.
  • The online documentation covers only the basics. Many of the features are undocumented, but are fairly self explanatory.
  • The software is written by developers in Romania. Again, this was not a problem for us, but emailing support sometimes got replies at odd hours of the day. Now, onto the positives. First of all, FileRun is very well written software. I’ve found only one bug, and it was a minor bug introduced in only the most recent update. I emailed support about it, they offered to patch it for me immediately if I couldn’t wait for it to be fixed in the next release. The development team operates under the “release early, release often” mantra, with new updates coming out about once a month. The support is very good; I got fast, knowledgeable answers to all my questions. The pricing is very workable and advertised on their site, and there is an online demo offered at their site. Where the software shines is in it’s interface. The main file interface is a typical Windows-like explorer window with two panes - one for folder navigation, the other for contents of the selected folder. Using AJAX, they have made the application feel more like a desktop application than a webapp. There are three methods of uploading files, one is a standard HTML form-based upload, the second is a Flash-based upload, and the third is a Java applet. The java applet allows for drag-and-drop uploads, and it also gets around the PHP upload limitations allowing you to upload unlimited file sizes (I uploaded a 2.6GB Solaris DVD iso to it and it didn’t skip a beat!). Any user who is used to file management on a desktop system will be off and running in no time. The backend has the concepts of Users, Groups, and Roles. Roles should probably have been called a “User Template”, because that’s really what they are. Each user can have one Role assigned to it, and the Role overrides settings such as home directory, permissions, etc. Groups are simply containers that hold one or more users, and each user can belong to zero or greater groups. Groups are used for sharing folders and setting permissions on shares. If I’m in Accounting, I can create a new directory under my home directory, and share it to the Payroll department. When a member of the payroll department logs in, they will see my shared folder. I can dictate whether payroll can upload, download, rename/delete/change files and folders in that shared directory as well. While Groups are used to set permissions on files shared between authenticated users, one of the biggest requirements for us was to be able to offer downloads to unauthenticated users. This is where the weblinks feature comes in, and I believe it’s the biggest feature in the application. Once I upload a file to FileRun, I can generate a weblink. This is simply a link generated by the PHP script that looks something like http://my.domain.com/weblinks/?id=b6d767d2fde85d21a44b0e4567680cb9. The user generating the weblink can set a shared password on the link, set an expiration date for the link, or even set the max number of allowed downloads for the link. The UI also has built in support for emailing a weblink directly from the app instead of copy/paste into your MUA. FileRun supports thumbnail generation via the convert binary from ImageMagick, so anytime a user uploads a pdf, jpg, png, psd, etc, a thumbnail is generated. There is also a search index feature where MS Office documents and PDF’s are indexed and are searchable via the UI. FileRun also supports versioning, but I haven’t yet researched whether or not the versioning stores only the deltas, or complete copies of the files - I suspect the latter. Another important feature of FileRun is that it stores the file itself on the filesystem - metadata is stored in MySQL. This means that you can interact with the files from the OS as well as from within FileRun. Another nice feature is the fact that it supports zip/unzip operations from within the UI, no need for external programs to create/extract zip files. Features that are there, but I haven’t played with yet include:

  • Online editing via Zoho.com and Snipshot.com

  • WebDav - MS Web Folders isn’t supported (what’s the point?)
  • Email files as attachments.
  • All actions are logged to the DB, and you can generate email-based notifications using rules. You can get emailed about every little activity, or only failures.
  • External Authentication is supported.
  • A recycle bin prevents unintended deletions.
  • See FileRun’s full feature list for more details. We’ve been using the software here for a couple of weeks, and I love it. It solves a problem for us that would have cost a lot more in dev time than what the licensing cost is, and they support the software, not us. It’s not without it’s issues, the pros far outweigh the cons.

Comments