I've just set a WebDAV directory in order to let users upload files as an alternative to the good old FTP.
Configuring WebDAV
In order to provide a drag and drop interface to upload files to galaxy, one can choose WebDAV. To make it available, you'll need to install the following:
# These modules are responsible for enabling the DAV protocol through the apache webserver
mod_dav
mod_dav_fs
# This package is necessary in order to set galaxy uid/gid (AssignUserId) rather than the default apache user
httpd-itk.x86_64 : MPM Itk for Apache HTTP Server
yum install httpd-itk
# Then edit /etc/sysconfig/httpd and add the following line:
HTTPD=/usr/sbin/httpd.itk
# The galaxy user must have write permission in the directory containing the DavLockDB files otherwise:
[error] [client 127.0.0.1] The locks could not be queried for verification against a possible "If:" header. [500, #0]
[error] [client 127.0.0.1] Could not open the lock database. [500, #400]
[error] [client 127.0.0.1] (13)Permission denied: Could not open property database. [500, #1]
# Here's an example of apache's virtual host configuration, assuming ftp_upload_dir = /home/galaxy/database/ftp in the Galaxy config file:
# include 'REMOTE_USER' in the directory path in order to limit users to their own directories
RewriteRule ^/repository(.*) /home/galaxy/database/ftp/%{LA-U:REMOTE_USER}$1
<Directory /var/webdav>
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order Allow,Deny
Allow from all
# set the galaxy user and group for your vhosts to use
AssignUserId galaxy galaxy
# here follows the PAM authentication in order to allow users registered in the server itself
# can be changed to ldap, htpasswd file, ...
AuthType Basic
AuthName Repository
AuthPAM_Enabled on
Require valid-user
# activate mod_dav
Dav On
</Directory>
# It's necessary to create each user directory with the correct galaxy user permissions!!!
# After that you can use a webdav client (cadaver) or map the network directory in a filemanager (nautilus, konqueror, orca) to view/edit/transfer files.