Splitfilesystem V2
The files are stored within a filesystem in Base32 coded structures. The whole path is base 32 coded and divided into blocks.
Code Block |
---|
C:\Doc_Base\FI\FZVW\O4Y\OJQX\O\GIYD\EMZQ\G4YT\GXZW\GEYW\GZJQ\G44C\2MRZ\GE2S\2NBS\GNSC\2OBR\HEYC\2YZX\GJSD\IMBT\GM3W\MZRZ\L5XG |
The metadata and properties of the archived document are stored in a .info-File as JSON.
Code Block |
---|
{
"properties": {
"contentDigestAlgorithm": "MD5",
"creationUser": "LOCAL SERVICE",
"creationTime": "2023-07-13T07:03:50.867280400Z[UTC]",
"propertyLayoutVersion": "V02.00",
"modificationTime": "2023-07-13T08:03:37.406140Z[UTC]",
"modificationUser": "LOCAL SERVICE",
"objectName": "20230713_611ce078-2915-423d-8190-c72d40337ff9_node",
"contentLength": "1127",
"repository": "FI",
"contentDigest": "68FAB75EC1AC8D2820068CC95FAA5EDE",
"contentStreamLength": "1127",
"archiveLinkVersion": "0046"
}
} |
Configurationparameters within the repository.cfg file
In order to store documents on a filesystem parameters have to be defined within the repository.cfg file. In general the file is stored in the folder:
Code Block |
---|
<Tomcat folder>\webapps\<name of the webapp>\WEB-INF\classes\config |
A small sample of a repository.cfg file:
...
The latest version of split file system is V3. As latest release, it is recommended for new installations and when setting up new content services.
The table below illustrates the main differences of the different versions:
Splitfilesystem | SplitfileSystemV2 | SplitfileSystemV3 | |
---|---|---|---|
available since | tia Content Server Core 3.6.0 | ||
Info- and meta files | Info: XML file Meta: JSON file | Combined in one file in JSON format | see splitfilesystemV2 |
Storage path for details, see Storage path | Base32 encoded and split in blocks for folder and file name. Last block of encoded component name is used as file name. Configuration parameters: | see splitfilesystem | similiar to splitfilesystem, but the component name encoding differs. Configuration parameters: |
Root folder configuration for details, see Multi root configuration (splitfilesystemv3, netappv3, icasv3) | Single-root Configuration parameters: | see splitfilesystem | Multi-root Configuration parameters: |
Example configuration for SplitfilesystemV3 :
Code Block |
---|
<repo>.contentservice.type = splitfilesystemv3
<repo>.description = Finance Repository
<repo>.saphttp.security = 1
<repo>.accessmode = rucd
<repo>.authentication.required = false
<repo>.authentication.user =
<repo>.authentication.pwdalias =
#===== FI content service configuration (filesystem|splitfilesystemv2|splitfilesystemv3|azureblobstore|s3blobstore|kgsstore)
<repo>.contentservice.splitfilesystemv3.root.1 = C:/Doc_Base
<repo>.contentservice.splitfilesystemv3.root.2 = C:/Doc_Base_Disk2
<repo>.contentservice.splitfilesystemv3.contrepinpath = true
<repo>.contentservice.splitfilesystemv3.maxfolderblocks=8
<repo>.contentservice.splitfilesystemv3.maxFileNameLength=200
<repo>.contentservice.splitfilesystemv3.rootSelectionIntervalH=24 |
Info |
---|
Folder separation is always / see Syntax rules for repository.cfg file |
Example configuration for SplitfilesystemV2:
Code Block |
---|
FI.contentservice.type = splitfilesystemv2 FI.description = Finance Repository FI.saphttp.security = 1 FI.accessmode = rucd FI.authentication.required = false FI.authentication.user = FI.authentication.pwdalias = #===== FI content service configuration (filesystem|splitfilesystemv2|splitfilesystemv3|azureblobstore|s3blobstore|kgsstore) FI.contentservice.splitfilesystemv2.root = C:/Doc_Base FI.contentservice.splitfilesystemv2.contrepinpath = true #===== FI keystore service configuration (none|pkcs12) FI.keystoreservice.typedefault false |
Info |
---|
Folder separation is always / see Syntax rules for repository.cfg file |
Example of a info file containing also meta data as stored beside the actual data file by splitfilesystemV2, as well as by splitfilesystemV3.
Code Block |
---|
{ "properties": { "contentDigestAlgorithm": "MD5", = pkcs12 FI.keystoreservice.pkcs12.name = common-ks.pkcs12 #===== FI meta service configuration (none|elastic|database|kafka) FI.metaservice.type = none #===== FI meta service configuration (none|elastic|database|kafka) FI.protocolservice.type = none |
...
All further parameters are defined individually for each content repository.
In order to store the documents on the filesystem the content repository type has to be set to splitfilesystemv2
.
Code Block |
---|
<repoName>.contentservice.type = splitfilesystemv2 |
In order to store the documents in a specified place the path has to be entered; ex. C:/Doc_Base/
or /opt/Doc_Base
. Please be aware that the separator for the folder always is a / !
When storing the documents on a filesystem we suggest to set the parameter ContrepInPath = true
Code Block |
---|
#<repoName>.contentservice.splitfilesystemv2.root = C:/Doc_Base
#<repoName>.contentservice.splitfilesystemv2.ContrepInPath = true |
The saphttp.security can be set to 0
, 1
or 2
.
0
means that no security is necessary and no certifiate is needed in order to store documents in the content repository
1
means that in order to store documents in the content repository a certificate has to be send from the SAP system to the content server. The certifiacte will be accepted automatically by the content server.
2
means that in order to store documents in the content repository a certificate has to be send from the SAP system to the content server. The certifiacte has to be accepted manually by the content server. This can be done via the transaction CSADMIN within the SAP system.
Code Block |
---|
#<repoName>.saphttp.security = 1 |
The parameters for the accessmode
in general always should be rucd (read, update, create, delete) and the authentication
should be set to false
with no user a/o password.
Code Block |
---|
FI.accessmode = rucd FI.authentication.required = false FI.authentication.user = FI.authentication.pwdalias = "creationUser": "LOCAL SERVICE", "creationTime": "2023-07-13T07:03:50.867280400Z[UTC]", "propertyLayoutVersion": "V02.00", "modificationTime": "2023-07-13T08:03:37.406140Z[UTC]", "modificationUser": "LOCAL SERVICE", "objectName": "20230713_611ce078-2915-423d-8190-c72d40337ff9_node", "contentLength": "1127", "repository": "FI", "contentDigest": "68FAB75EC1AC8D2820068CC95FAA5EDE", "contentStreamLength": "1127", "archiveLinkVersion": "0046" } } |