14.2.0
WebP generation now works on non-Local FAL drivers (S3, Azure, custom). A per-storage opt-in field controls which storages produce .webp siblings; the publish and lifecycle paths were rewritten on top of FAL public APIs so any conformant driver works out of the box.
New features
- Per-storage opt-in for non-Local FAL drivers. A new Generate WebP variants field on each
sys_file_storagerecord (tx_webp_mode) selects Auto (on for Local drivers, off for everything else), Enabled, or Disabled. Set it to Enabled on a non-Local storage to opt in. Closes #108. - README and reST documentation for remote storages and the CDN-edge serving recipe (CloudFront Function / Cloudflare Worker rewriting
Accept: image/webpto the sibling URL).
Changes
- WebP publish routed through FAL public APIs.
ResourceStorage::updateProcessedFile()for processing-folder targets,Folder::addFile(..., DuplicationBehavior::REPLACE)for source-folder targets. Replaces the previous direct filesystem writes. The driver overwrites atomically onREPLACE, so a transient upload failure no longer leaves the user without a previously-valid sibling. - WebP sibling lifecycle (move/rename/replace/delete/recycler) uses FAL public APIs (
ResourceStorage::moveFile,renameFile,getFile,deleteFile). Works driver-agnostically; remote-driver storages no longer accumulate orphan.webpon cross-storage moves. - Sibling now follows the original on rename. Previously only inter-folder moves were tracked, so a BE "rename" left the
.webpstranded at the old filename.
Bug fixes
- TYPO3 v12 compatibility for the new FAL publish path. v12 ships
SYS/mediafile_extwithoutwebp, so the publish step trippedResourceConsistencyService::isFileExtensionAllowed.ext_localconf.phpnow appendswebpto that list when absent.
Upgrade notes
- Run the database analyzer after upgrade so the new
tx_webp_modecolumn is added tosys_file_storage. - For non-Local storages (S3, Azure, custom), edit the storage record and set Generate WebP variants to Enabled. Strongly recommended to also enable
async = 1— synchronous mode adds the driver's upload latency to every page render that processes an image (~100–500 ms per S3 PUT). - CDN serving (
Accept-header rewrite) is the edge's job. See the new Remote storages README section for CloudFront Function / Cloudflare Worker recipes.