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-migrations-bundle": "^4.0",
|
||||
"doctrine/orm": "^3.6",
|
||||
"league/flysystem-aws-s3-v3": "*",
|
||||
"league/flysystem-bundle": "*",
|
||||
"pentatrion/vite-bundle": "^8.2",
|
||||
"phpdocumentor/reflection-docblock": "^6.0",
|
||||
"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\UX\React\ReactBundle::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>,
|
||||
* }>,
|
||||
* }
|
||||
* @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,
|
||||
|
||||
13
symfony.lock
13
symfony.lock
@@ -35,6 +35,19 @@
|
||||
"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": {
|
||||
"version": "8.2",
|
||||
"recipe": {
|
||||
|
||||
Reference in New Issue
Block a user