cesurapp / storage-bundle
Symfony 存储包
1.0.02
2024-05-31 11:24 UTC
Requires
- php: >=8.2
- ext-fileinfo: *
- async-aws/s3: ^2.0
- symfony/dependency-injection: ^7.0
- symfony/framework-bundle: ^7.0
- symfony/http-kernel: ^7.0
Requires (Dev)
- php-cs-fixer/shim: ^3.40
- phpstan/phpstan: ^1.10
- symfony/test-pack: ^1.1
README
用于文件存储。无需数据库连接。使用 Async-aws/s3 包进行 S3 连接。每个驱动都有可用的测试,任何未定义访问代码的测试都将跳过。可以同时使用多个驱动。使用 MediaBunle 来跟踪文件。
支持的驱动器
- BackBlaze
- CloudFlare
- 本地
安装
所需 Symfony 7
composer req cesurapp/storage-bundle
配置
# config/packages/storage.yaml storage: default: main devices: local: driver: local #backblaze, cloudflare, local root: "%kernel.project_dir%/storage/files" main: driver: s3 root: / accessKey: "access_key" secretKey: "secret_key" bucket: "bucket_name" region: "auto" endPoint: "https://11d0547262baad2e6bdeb340e88f83be.r2.cloudflarestorage.com" backblaze: driver: backblaze root: / accessKey: "access_key" secretKey: "secret_key" bucket: "bucket_name" region: "auto"
测试
未定义访问代码的测试将被跳过。
<!--phpunit.xml.dist--> <!--BackBlaze Test Keys--> <server name="BACKBLAZE_ACCESS_KEY" value="KEY"/> <server name="BACKBLAZE_SECRET" value="KEY"/> <server name="BACKBLAZE_BUCKET" value="KEY"/> <!--CloudFlare Test Keys--> <server name="CLOUDFLARE_R2_ACCESS_KEY" value="KEY"/> <server name="CLOUDFLARE_R2_SECRET" value="KEY"/> <server name="CLOUDFLARE_R2_ENDPOINT" value="KEY"/> <server name="CLOUDFLARE_R2_BUCKET" value="unit-test"/>
用法
public function controllerAction(\Cesurapp\StorageBundle\Storage\Storage $storage) { // Upload File $storage->upload('source_path', 'upload_path'); // Write File $storage->write('upload_path', 'text_content', 'application/text'); // Delete $storage->delete('file_path'); // Check $storage->exists('file_path'); // Read $storage->read('file_path') }