Storage

This section explains all configuration related to storage of record file and upload data.

STORAGE_PROVIDER

This configuration value specifies the type of the storage provider used for storing file data and corresponding upload data. By default, Kadi4Mat uses the local storage provider, however, additional storage providers may be supported via suitable plugins. Please see the sections below for all storage provider-specific information.

Defaults to "local".

Note

Note that changing this value after some data has already been stored will not automatically migrate data to the new storage provider. Please see the section on data migration.

UPLOAD_USER_QUOTA

The maximum allowed total size of a user’s files and uploads, independent of where they are stored. Setting this configuration value to None will remove the size limit altogether.

Defaults to 10_000_000_000 (10 GB).

Provider configuration

Local

The local storage provider uses a regular file system which needs to be locally accessible by Kadi4Mat, either directly or via a network, e.g. using NFS.

The following configuration values are supported by this provider:

STORAGE_PATH

An absolute local file path in which all data is stored in, e.g. "/opt/kadi/storage".

Note that the corresponding directory structure will be created automatically by the application. If you want to create it beforehand, make sure the permissions of at least the storage directory are set up according to the user and group under which the application is running, e.g.:

sudo chown kadi:www-data /opt/kadi/storage
sudo chmod 750 /opt/kadi/storage

Defaults to None.

Note

Note that changing this value after performing a production setup requires some changes to the generated Apache configuration file as well. Namely, the corresponding XSendFilePath directive needs to be adapted according to the new path. Please also refer back to the manual installation instructions.

Others

If local storage is not suitable, other storage providers may be used via suitable plugins, such as the first-party S3 plugin to integrate an S3-compatible object store with Kadi4Mat. Note that each plugin uses its own, plugin-specific configuration.

Data migration

When changing the configured STORAGE_PROVIDER after some data has already been stored in Kadi4Mat, the existing data can optionally be migrated to the new storage provider. For this to work, all relevant storage providers need to be configured simultaneously, independent of the currently configured STORAGE_PROVIDER, e.g. for the local storage provider, a valid STORAGE_PATH needs to be configured.

To perform the actual migration, the Kadi CLI can be used:

sudo su - kadi                # Switch to the kadi user (in production environments)
kadi files migrate <provider> # Migrate all data to the specified storage provider

Even if not choosing to migrate the data, Kadi4Mat will continue to work as-is, as long as all relevant storage providers are configured correctly. In this case, storage providers outside of the configured main STORAGE_PROVIDER can be treated as “read-only”, as all newly uploaded data will automatically end up in the storage provider specified via the STORAGE_PROVIDER configuration option.