feat: install Flysystem S3 and configure SeaweedFS storage

Add league/flysystem-bundle and league/flysystem-aws-s3-v3 packages and
configure the default.storage adapter to use AWS S3Client pointed at the
SeaweedFS endpoint (s3.lclr.dev) with path-style endpoints and secret-based
credentials.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
thibaud-leclere
2026-03-29 10:08:56 +02:00
parent def97304a9
commit 5d16d28c59
6 changed files with 1116 additions and 1 deletions

View File

@@ -1487,6 +1487,22 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
* preload_attributes?: list<scalar|null|Param>,
* }>,
* }
* @psalm-type FlysystemConfig = array{
* storages?: array<string, array{ // Default: []
* adapter: scalar|null|Param,
* options?: list<mixed>,
* visibility?: scalar|null|Param, // Default: null
* directory_visibility?: scalar|null|Param, // Default: null
* retain_visibility?: bool|null|Param, // Default: null
* case_sensitive?: bool|Param, // Default: true
* disable_asserts?: bool|Param, // Default: false
* public_url?: list<scalar|null|Param>,
* path_normalizer?: scalar|null|Param, // Default: null
* public_url_generator?: scalar|null|Param, // Default: null
* temporary_url_generator?: scalar|null|Param, // Default: null
* read_only?: bool|Param, // Default: false
* }>,
* }
* @psalm-type ConfigType = array{
* imports?: ImportsConfig,
* parameters?: ParametersConfig,
@@ -1502,6 +1518,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
* monolog?: MonologConfig,
* react?: ReactConfig,
* pentatrion_vite?: PentatrionViteConfig,
* flysystem?: FlysystemConfig,
* "when@dev"?: array{
* imports?: ImportsConfig,
* parameters?: ParametersConfig,
@@ -1520,6 +1537,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
* maker?: MakerConfig,
* react?: ReactConfig,
* pentatrion_vite?: PentatrionViteConfig,
* flysystem?: FlysystemConfig,
* },
* "when@prod"?: array{
* imports?: ImportsConfig,
@@ -1536,6 +1554,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
* monolog?: MonologConfig,
* react?: ReactConfig,
* pentatrion_vite?: PentatrionViteConfig,
* flysystem?: FlysystemConfig,
* },
* "when@test"?: array{
* imports?: ImportsConfig,
@@ -1553,6 +1572,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
* monolog?: MonologConfig,
* react?: ReactConfig,
* pentatrion_vite?: PentatrionViteConfig,
* flysystem?: FlysystemConfig,
* },
* ...<string, ExtensionType|array{ // extra keys must follow the when@%env% pattern or match an extension alias
* imports?: ImportsConfig,