====== Upload module spec ====== This specification outlines how the upload module should be rewritten from PHP to Perl/Catalyst starting with Metamod 2.8. ===== Functionality ===== The following functions (existing or new) must be supported: ==== User functions ==== The user must be able to: * upload data files via HTTP and FTP * either as single data files or as an archive * get a status log detailing if the files was uploaded successfully * if not, an error message describing the problem * delete data files from the repository * edit metadata for the datasets ==== Implementation ==== === General === - user must be authenticated and authorized === Test file === - receive file from user - validate filename - write file to webrun/upl/ftaf - write new file with same name containing user's email to webrun/upl/etaf === Upload file === - receive file from user - check dirkey - validate filename - write file to webrun/webupload - rest is handled by upload_monitor === Register files on disk (osisaf) === - user calls webservice with filename, dataset and dirkey - call upload_indexer