There are two ways to store, manage and deliver files (images, css, video, pdfs, Office Docs, etc…) in dotCMS:
Files can be created as individual content items, which may be accessed by multiple different content types and managed directly via both the Site Browser and via features such as WebDAV.
You may also create your own File Content Types by extending the File Base Type. Content Types that extend the File Base Type act the same as the built-in File Asset Content Type, so you can:
- View and manage them in the Site Browser.
- Access them using direct URLs (e.g. http://dotcms.com/images/corporate/logo.png).
- Add fields to them with properties appropriate to the file type.
- For example, you may wish to add a “Resolution” or “Run Length” field to a Video Content Type.
- Track versions of files separately from the content that references them.
- Set different Permissions for the files and the content that references them.
- Have different Permissions for different types of files.
- Search within file contents and metadata using Elasticsearch.
Embedded in Content
Alternately, you can embed files and images within specific content items in the form of Binary Fields. Files embedded in Binary Fields are versioned and permissioned with the content item they are embedded in, and managed via the Workflow of the content item they are contained in.
For files and images which only need to be accessed from a single content item, embedding as Binary Fields can help streamline the content creation and editing process. However files and images stored in a Binary Field are not accessible in any way except through the content item they are embedded in. This means that files stored in Binary Fields are not available via any of the following methods:
- Via the
- A direct URL.
- Another content item (even another content item of the same Content Type).
In addition, files stored in Binary Fields will not have their file metadata automatically uploaded and indexed.
| File Location | Site Browser | Direct URL | Access via WebDAV | Add Custom Properties | Versioning | Permissions