Blueprint Developer Manual / Version 2101
Table Of ContentsBlobs of renditions can be stored in the database or in the file system. In general, content in the CoreMedia CMS is stored in a database, but for large blobs, the file system might be better suited for storage, because databases are not always optimized for this use case.
Blueprint is configured in such a way, that WAR files for deployment, generated in
the packages
directory, are configured to store the blobs of the default
asset type in the file system. However, when you start the Content Management
Server using mvn spring-boot:run
in module
content-management-server-app
of the development installation, all blobs are stored
in the database.
Blob storage is configured in the Content Server's Spring application
context, see Section 3.3, “Configuring Blob Storage” in Content Server Manual for
details. With the property am.blobstore.rootdir
, you define the root
directory for file system storage.
In Blueprint you find the storage configuration in the file
src/main/resources/framework/spring/blobstore/am/blobstore.xml
of the
am-server-component
module. The property
am.blobstore.rootdir
can be set in the file
application.properties
of the Content Management
Server web application or as a system property. File and property must both be
present, so that file system storage works. In the packaged WAR files from the Blueprint
packages directory, the property am.blobstore.rootdir
is set to
DATA_ROOT/cm7-cms-tomcat/blobstore/assets
, where DATA_ROOT
is
the base directory for storing long-lived application files. DATA_ROOT
defaults to
/var/lib/coremedia
. These properties can be adapted in the file
blueprint/packages/pom.xml
as needed.
If you want to store your own renditions in the file system, update the blob store configuration
accordingly. If you want to store them in a separate database, you have to define an appropriate
media store, as described in
Section 3.3, “Configuring Blob Storage” in Content Server Manual. If you want to
store assets in the content repository database, remove the configuration file and reset
am.blobstore.rootdir
. If you want to store them in a separate database, define an
appropriate media store.
Note
Keep in mind, that storing a blob in the file system might double the required space, when you
use the rendition in another content item, for example, in a Picture
.
This is because, when you store a blob in the database and the same blob is used in different content items, then all the content items link to this blob. On the other hand, when you have stored a blob in the file system and this blob is used in another content item that does not define file system storage, then a copy of the blob will be created in the database.