Class SimpleFileSystemContentStorage

java.lang.Object
com.flowable.content.engine.impl.AbstractContentStorage
com.flowable.content.engine.impl.fs.SimpleFileSystemContentStorage
All Implemented Interfaces:
org.flowable.content.api.ContentStorage

public class SimpleFileSystemContentStorage extends AbstractContentStorage implements org.flowable.content.api.ContentStorage
(Very) simple implementation of the ContentStorage that relies on the passed metadata to store content. Under a root folder, a division between 'task' and 'process-instance' content is made. New content gets a new UUID assigned and is placed in one of these folders. The id of the returned ContentObject indicates in which folder it is stored.
Author:
Joram Barrez
  • Field Details

    • contentFolderRoot

      protected File contentFolderRoot
    • taskFolder

      protected File taskFolder
    • processInstanceFolder

      protected File processInstanceFolder
    • caseFolder

      protected File caseFolder
    • uncategorizedFolder

      protected File uncategorizedFolder
  • Constructor Details

    • SimpleFileSystemContentStorage

      public SimpleFileSystemContentStorage(File contentFolderRoot)
  • Method Details

    • validateOrCreateSubfolders

      protected void validateOrCreateSubfolders()
    • validateOrCreateFolder

      protected File validateOrCreateFolder(String folderName)
    • createContentObject

      public org.flowable.content.api.ContentObject createContentObject(InputStream contentStream, org.flowable.content.api.ContentObjectStorageMetadata metaData)
      Specified by:
      createContentObject in interface org.flowable.content.api.ContentStorage
    • updateContentObject

      public org.flowable.content.api.ContentObject updateContentObject(String id, InputStream contentStream, org.flowable.content.api.ContentObjectStorageMetadata metaData)
      Specified by:
      updateContentObject in interface org.flowable.content.api.ContentStorage
    • getContentObject

      public org.flowable.content.api.ContentObject getContentObject(String id)
      Specified by:
      getContentObject in interface org.flowable.content.api.ContentStorage
    • getContentFile

      protected File getContentFile(String id)
    • getMetaData

      public Map<String,Object> getMetaData()
      Specified by:
      getMetaData in interface org.flowable.content.api.ContentStorage
    • deleteContentObject

      public void deleteContentObject(String id)
      Specified by:
      deleteContentObject in interface org.flowable.content.api.ContentStorage
    • getContentStoreName

      public String getContentStoreName()
      Specified by:
      getContentStoreName in interface org.flowable.content.api.ContentStorage
    • getContentFile

      protected File getContentFile(org.flowable.content.api.ContentObjectStorageMetadata metaData, String contentId)
    • createOrGetFolderBasedOnMetaData

      protected File createOrGetFolderBasedOnMetaData(org.flowable.content.api.ContentObjectStorageMetadata metaData)
    • internalCreateOrGetFolder

      protected File internalCreateOrGetFolder(File parentFolder, String id)