When we went live with our HP thin clients 2 years ago, one new feature we added was the ability to use USB sticks and transfer files. I know there are some tools for doing this already, but opted instead to use FTP. I felt that using a stateless connection would be more stable, and also allow us to use this feature when people are logging in with NX over low bandwidth networks. As long as the server can resolve the remote IP, it will find the FTP daemon running on the remote thin client. FTP already works fine over differing network speeds, and once the transaction is complete nothing is mounted back to the server. Very clean to me and has worked well.
After some conversations in our architecture meetings, we have agreed that CD/DVD readers are really no different than USB sticks; and in fact they probably can hold fewer files these days. So I made a last minute addition to our new thin client update to support these types of drives.
When you plug in a USB stick, it's appropriate to just mount it immediately. I then tuned the thin clients to always flush data every 10 seconds. So we tell people that if they place files on USB sticks, just wait 10 seconds and then they can remove the stick. udev sees the stick being removed and the mount is removed. This is working well, and avoids having to have some kind of "Safe To Remove" panel app that we know people don't use anyway. :)
Being that CD/DVD drives have to eject, I couldn't just mount the disk when it's inserted..or they wouldn't be able to eject the disk. The GNOME desktop is running on the server, so it too is not aware at all of these drives. So I wrote a very simple UI that pops up (no GUI Nazis please :) ), when a drive is powered on. This is running on the thin client itself. I tried to keep it to the bare minimum and so far it's working well.
When the USB CD/DVD is turned on, udev starts up the small UI. When they click on the Mount button, it generates a directory name based on the physical hardware and creates the mount. The whole idea of mounting things to usb0, usb1 and so on has not worked well because users never were able to figure out which directories were in use. So now they only see the drives that are mounted, and each has a descriptive name. In the shot below, you can see the directory mounted from the drive after it's mounted.
The users then double-click on the USB icon and up comes Nautilus which is FTP jailed to just USB devices on the thin client. Proftpd only displays files types which we have approved. To the user, this looks just like a regular file manager that they always use. In the shot below, pictures and videos are displayed from CD media.
The user then drops and drags the files to the desktop, and the FTP feature of Nautilus is activated. Thumbnail generates and the file is now stored on the server.
I'm sure there are other ways to do this, and this definitely falls under a WFM; but if you are deploying thin clients and wondering how to handle these devices...maybe this will be a good solution.