Skip to end of metadata
Go to start of metadata

In the config of a FTP server it's possible to change the file system view to use the old system. The old system is in general slower, doesn't allow custom plugins, but has some functionality that is not implemented by default in the new version.

To enable it create a following property in your FTP server configuration.

ftp.server.resolver-class=ch.systemsx.cisd.openbis.dss.generic.server.ftp.FtpPathResolverRegistry

 Please refer to the following table for a more detailed description of the possible configuration properties :

Property

Default value

Description

ftp.server.dataset.display.template

${dataSetCode}

See the following section.

ftp.server.dataset.show-parents-and-children

false

Shows also parent and child data sets inside a data set directory. The name of these data sets are starting with PARENT- or CHILD- followed by the evaluated ftp.server.dataset.display.template. Note, this feature only works if the template doesn't contain ${fileName}.

ftp.server.dataset.filelist.subpath.<dataset-type>

N/A

Specifies that the contents of a dataset should be listed starting from a preconfigured subpath. The property is only configurable per data set type. The property can contain Java regular expression.
Example (will hide a single top level folder starting with 'orig' for datasets of type HCS_IMAGE):

ftp.server.dataset.filelist.subpath.HCS_IMAGE = orig[^/]*

ftp.server.dataset.filelist.filter.<dataset-type>

N/A

A filter pattern applied to all files within a data set. Files not matching the pattern will be hidden and SFTP/FTP users will not see them.
Example (will only show PNG files for data sets of type HCS_IMAGE):

ftp.server.dataset.filelist.filter.HCS_IMAGE= .*png

Data set template

The virtual folder structure supplied by the FTP server looks like : ${space}/${project}/${experiment}/<data-set-level>.
While the first 3 levels in the hierarchy are not configurable, the format of <data-set-level> can be specified with a template using the following built-in variables :

  • ${dataSetCode} - the data set code
  • ${dataSetType} - the data set type
  • ${dataSetDate} - the creation date of the data set
  • ${disambiguation} - if ${dataSetCode} is not used, the ${disambiguation} variable must be present in the template in order to avoid path collisions.
  • ${fileName} - When ${fileName} is specified in the template, '<data-set-level>' will include the name of a file located directly under the dataset root folder. One entry will be created for each such file. A template containing this variable forbids to show also data set parent and children.

Example :

 ftp.server.dataset.display.template=DS-${dataSetDate}-${disambiguation}-${fileName}

Result :

 /SPACE/PROJECT/EXPERIMENT/DS-2011-10-10-10-10-A-file1.txt
 /SPACE/PROJECT/EXPERIMENT/DS-2011-10-10-10-10-A-file2.pdf
 /SPACE/PROJECT/EXPERIMENT/DS-2011-10-10-11-11-B-file1.txt
 /SPACE/PROJECT/EXPERIMENT/DS-2011-10-10-11-11-B-file2.pdf
  • No labels