Overall Concept of the TYPO3 File Abstraction Layer¶
Abstract¶
TYPO3 currently lacks a proper way of integrating files from different sources into the system. There is also no standardized way of using Content Delivery Networks (CDNs) on a TYPO3 site.
The advent of DAM helped mitigating this shortage, but as DAM stayed an optional extension until today, it has not found wide adoption. Additionally contributing to this was that there is no standardized way of using DAM in all extensions. For almost every table a new extension has to be installed, which does not even offer migration of old data. There is currently no popular extension that supports DAM out of the box.
To overcome this situation, a combined effort of the TYPO3 Core Team and non-core developers, especially from the DAM team, is being made. This effort should result in a lean layer in the TYPO3 core that enables the Core and also Extensions to easily access and manage files.
As it provides an abstraction between the file system and TYPO3, it may also help in integrating additional services, like Amazon S3.
Technical description¶
Design Principles¶
- Metadata should be split into two parts: File-related and Asset-related. File-related metadata will mostly be collected by the File Abstraction Layer (modification time etc.), the rest and all Asset-related will be handled by the Media Management and its services.
- Backwards compatibility in existing extensions should - as always - be broken as little as possible. However, as we're introducing a feature that has not been there before we are almost free to break stuff as most likely there won't be anything to break. This means that for the time being, we will leave the old way of working with files in place so extensions keep working, but migrate all usages of files in the TYPO3 Core itself.