loading table of contents...

8.7.4.5. Blob Storage

Blobs 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 tomcat7:run-war in module content-management-server-webapp of the development installation, all blobs are stored in the database.

Blob storage is controlled by an XML file (default is blobstore.xml), which defines the storage configuration (see Section 3.4, “Configuring Blob Storage” in CoreMedia Content Server Manual for details). With the property am.blobstore.rootdir, you define the root directory for file system storage. The value of the property is used in the XML file.

In Blueprint you find the storage configuration in the file src/main/resources/framework/spring/blobstore/am/blobstore.xml of the am-server 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.4, “Configuring Blob Storage” in CoreMedia 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]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.