Shared FIles

I have a web application that is essentially as CRM for a small company (40 Users).

We have a large number of files that are used (Thousands of them) .

The files are written to DropBox Which we find very problematic and are looking to replace.

I need a web based interface beyond simply opening files and looking form them.

A.What approaches can we take that would allow me to search the files

  1. By name
  2. By content

B. I would like the user to be able to mount the file system (Write only) as part of their Mac or PC

Any ideas.

have you thought about writing a desktop app which looks and acts like a Finder window which would use an Httpsecuresocket or SSLSocket in the background to send the data to your app? You could probably even write a second web app whose only purpose was to accept files from this “client”.

Whenever I hear “thousands of files…” (or “thousands of rows in a spreadsheet…”) I begin to wonder whether this is a situation where a proper database would be the answer?

Regarding A:
For the name part you can use the FolderItem class. However, it’s becoming very slow with an increasing number of files.

Hence, for searching purposes, I’d resort to shell commands (provided that the app runs on a Unix server). That way you can even search file contents. E.g. (However, grep can only search through a small set of file types, notably text files and alike. But there are other shell apps like pdfgrep…)

Regarding B:
I’d install a web server that can handle WebDAV like Apache or Nginx on the server’s side. WebDAV mounts are very easy to implement client side (on both Mac and Win) - even from within Xojo (just a shell command execution).

On the server side, the WebDAV server would access a regular folder which you can read from and write to in your Xojo web app using the FolderItem class. You just need to define the folder in the configs once. When a client connects, the WebDAV server simply serves up the folder’s contents.

The WebDAV access (say login details) could either be managed through the server itself, through other software (say LDAP, AD and such) or even through your own Xojo web app (by writing to the WebDAV config files). It’s a breeze.

One could even write a WebDAV server (buy implementing the protocol through a socket subclass) in Xojo, I guess. But that would probably be quite some work. Maybe @Christian Schmitz has a plugin for that?

PS: Grrr, user mentions still don’t work due to containing spaces!