Search by

konradmichalik / typo3-file-sync

konradmichalik

File Sync - Synchronizes missing files between TYPO3 instances using configurable resource handlers.

Package info

github.com/konradmichalik/typo3-file-sync

Type:typo3-cms-extension

pkg:composer/konradmichalik/typo3-file-sync

Statistics

Installs: 2 191

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 2

0.2.2 2026-08-05 13:00 UTC

This package is auto-updated.

Last update: 2026-09-23 14:14:05 UTC


README

Extension icon

TYPO3 extension typo3_file_sync

TYPO3 Supported PHP Versions CGL Coverage Tests License

A lightweight TYPO3 extension that synchronizes missing files on demand: either by fetching them from a remote instance or by generating local placeholder images.

Tip

Typical use case: staging systems or local development environments that get refreshed from production on a regular basis (e.g. via a database sync) without copying the full file storage. Missing files are fetched (or replaced with a placeholder) the moment they're actually requested, instead of shipping every asset on each refresh.

✨ Features

🔥 Installation

Requirements

  • TYPO3 13.4 LTS or 14.3 LTS
  • PHP 8.2 to 8.5
  • PHP extension ext-gd (for placeholder and preview image generation; previews additionally need a GD build with WebP support)

Composer

Packagist Packagist Downloads

composer require konradmichalik/typo3-file-sync

TER

TER version TER downloads

Download the zip file from TYPO3 extension repository (TER).

Setup

vendor/bin/typo3 extension:setup --extension=typo3_file_sync

Upgrading

Run the same command after every update, or use the database analyser in the Install Tool. This release adds the column tx_typo3_file_sync_failed to sys_file, and deferred image loading needs it: between composer update and the schema update every materialize request fails with a database error and answers 500, so every deferred image stays a grey placeholder.

🚀 Quick start

Configure a storage in ext_localconf.php (or additional.php) to fetch missing files from a remote instance:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['typo3_file_sync']['storages'][1] = [
    [
        'identifier' => 'remote_instance',
        'configuration' => 'https://production.example.com',
    ],
];

The array key (1) is the UID of the file storage. See Configuration for the backend UI alternative, chaining handlers, and the full option set.

📚 Documentation

Page What's inside
Configuration Backend UI setup, the full PHP option set, and chaining handlers
Resource handlers The built-in Remote Instance and Placeholder Image handlers, Basic Auth, and timeouts
CLI commands Resetting missing-file flags and deleting synced files
Deferred image loading The experimental three-stage pipeline, preview image generation internals, known limitations, and database-sync behavior
Custom resource handlers Implementing RemoteResourceInterface and the optional batch-fetch extension point

💎 Credits

This project is inspired by the great filefill extension. File Sync targets TYPO3 13.4 LTS and 14.0+, generates placeholder images (GD and SVG) fully locally without relying on an external service like Placehold.co, and adds CLI commands for resetting and deleting synced files.

🧑‍💻 Contributing

Please have a look at CONTRIBUTING.md.

⭐ License

This project is licensed under GNU General Public License 2.0 (or later).