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:
@@ -10,6 +10,8 @@
|
|||||||
"doctrine/doctrine-bundle": "^3.2",
|
"doctrine/doctrine-bundle": "^3.2",
|
||||||
"doctrine/doctrine-migrations-bundle": "^4.0",
|
"doctrine/doctrine-migrations-bundle": "^4.0",
|
||||||
"doctrine/orm": "^3.6",
|
"doctrine/orm": "^3.6",
|
||||||
|
"league/flysystem-aws-s3-v3": "*",
|
||||||
|
"league/flysystem-bundle": "*",
|
||||||
"pentatrion/vite-bundle": "^8.2",
|
"pentatrion/vite-bundle": "^8.2",
|
||||||
"phpdocumentor/reflection-docblock": "^6.0",
|
"phpdocumentor/reflection-docblock": "^6.0",
|
||||||
"phpstan/phpdoc-parser": "^2.3",
|
"phpstan/phpdoc-parser": "^2.3",
|
||||||
|
|||||||
1062
composer.lock
generated
1062
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -15,4 +15,5 @@ return [
|
|||||||
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
||||||
Symfony\UX\React\ReactBundle::class => ['all' => true],
|
Symfony\UX\React\ReactBundle::class => ['all' => true],
|
||||||
Pentatrion\ViteBundle\PentatrionViteBundle::class => ['all' => true],
|
Pentatrion\ViteBundle\PentatrionViteBundle::class => ['all' => true],
|
||||||
|
League\FlysystemBundle\FlysystemBundle::class => ['all' => true],
|
||||||
];
|
];
|
||||||
|
|||||||
19
config/packages/flysystem.yaml
Normal file
19
config/packages/flysystem.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
flysystem:
|
||||||
|
storages:
|
||||||
|
default.storage:
|
||||||
|
adapter: 'aws'
|
||||||
|
options:
|
||||||
|
client: 's3_client'
|
||||||
|
bucket: 'ltbxd-actorle'
|
||||||
|
|
||||||
|
services:
|
||||||
|
s3_client:
|
||||||
|
class: Aws\S3\S3Client
|
||||||
|
arguments:
|
||||||
|
- endpoint: 'https://s3.lclr.dev'
|
||||||
|
credentials:
|
||||||
|
key: '%env(secret:S3_ACCESS_KEY)%'
|
||||||
|
secret: '%env(secret:S3_SECRET_KEY)%'
|
||||||
|
region: 'us-east-1'
|
||||||
|
version: 'latest'
|
||||||
|
use_path_style_endpoint: true
|
||||||
@@ -1487,6 +1487,22 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
|||||||
* preload_attributes?: list<scalar|null|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{
|
* @psalm-type ConfigType = array{
|
||||||
* imports?: ImportsConfig,
|
* imports?: ImportsConfig,
|
||||||
* parameters?: ParametersConfig,
|
* parameters?: ParametersConfig,
|
||||||
@@ -1502,6 +1518,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
|||||||
* monolog?: MonologConfig,
|
* monolog?: MonologConfig,
|
||||||
* react?: ReactConfig,
|
* react?: ReactConfig,
|
||||||
* pentatrion_vite?: PentatrionViteConfig,
|
* pentatrion_vite?: PentatrionViteConfig,
|
||||||
|
* flysystem?: FlysystemConfig,
|
||||||
* "when@dev"?: array{
|
* "when@dev"?: array{
|
||||||
* imports?: ImportsConfig,
|
* imports?: ImportsConfig,
|
||||||
* parameters?: ParametersConfig,
|
* parameters?: ParametersConfig,
|
||||||
@@ -1520,6 +1537,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
|||||||
* maker?: MakerConfig,
|
* maker?: MakerConfig,
|
||||||
* react?: ReactConfig,
|
* react?: ReactConfig,
|
||||||
* pentatrion_vite?: PentatrionViteConfig,
|
* pentatrion_vite?: PentatrionViteConfig,
|
||||||
|
* flysystem?: FlysystemConfig,
|
||||||
* },
|
* },
|
||||||
* "when@prod"?: array{
|
* "when@prod"?: array{
|
||||||
* imports?: ImportsConfig,
|
* imports?: ImportsConfig,
|
||||||
@@ -1536,6 +1554,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
|||||||
* monolog?: MonologConfig,
|
* monolog?: MonologConfig,
|
||||||
* react?: ReactConfig,
|
* react?: ReactConfig,
|
||||||
* pentatrion_vite?: PentatrionViteConfig,
|
* pentatrion_vite?: PentatrionViteConfig,
|
||||||
|
* flysystem?: FlysystemConfig,
|
||||||
* },
|
* },
|
||||||
* "when@test"?: array{
|
* "when@test"?: array{
|
||||||
* imports?: ImportsConfig,
|
* imports?: ImportsConfig,
|
||||||
@@ -1553,6 +1572,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
|||||||
* monolog?: MonologConfig,
|
* monolog?: MonologConfig,
|
||||||
* react?: ReactConfig,
|
* react?: ReactConfig,
|
||||||
* pentatrion_vite?: PentatrionViteConfig,
|
* pentatrion_vite?: PentatrionViteConfig,
|
||||||
|
* flysystem?: FlysystemConfig,
|
||||||
* },
|
* },
|
||||||
* ...<string, ExtensionType|array{ // extra keys must follow the when@%env% pattern or match an extension alias
|
* ...<string, ExtensionType|array{ // extra keys must follow the when@%env% pattern or match an extension alias
|
||||||
* imports?: ImportsConfig,
|
* imports?: ImportsConfig,
|
||||||
|
|||||||
13
symfony.lock
13
symfony.lock
@@ -35,6 +35,19 @@
|
|||||||
"migrations/.gitignore"
|
"migrations/.gitignore"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"league/flysystem-bundle": {
|
||||||
|
"version": "3.6",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "1.0",
|
||||||
|
"ref": "913dc3d7a5a1af0d2b044c5ac3a16e2f851d7380"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/flysystem.yaml",
|
||||||
|
"var/storage/.gitignore"
|
||||||
|
]
|
||||||
|
},
|
||||||
"pentatrion/vite-bundle": {
|
"pentatrion/vite-bundle": {
|
||||||
"version": "8.2",
|
"version": "8.2",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
|
|||||||
Reference in New Issue
Block a user