dbp / relay-blob-connector-filesystem-bundle
Connector bundle for the relay-blob-bundle to store blob data on the filesystem
Installs: 3 261
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 1
Type:symfony-bundle
Requires
- php: >=8.1
- ext-json: *
- api-platform/core: ^2.7.11 || ^3.2
- dbp/relay-blob-bundle: ^0.1.22
- dbp/relay-core-bundle: ^v0.1.153
- doctrine/dbal: ^3.3
- doctrine/migrations: ^3.5
- doctrine/orm: ^2.18
- symfony/config: ^5.4 || ^6.4
- symfony/dependency-injection: ^5.4 || ^6.4
- symfony/framework-bundle: ^5.4.30 || ^6.4
- symfony/http-foundation: ^5.4 || ^6.4
- symfony/http-kernel: ^5.4 || ^6.4
- symfony/mime: ^5.4 || ^6.4
- symfony/string: ^5.4 || ^6.4
Requires (Dev)
- ext-pdo_sqlite: *
- friendsofphp/php-cs-fixer: ^3.50
- phpstan/phpstan: ^1.10.59
- phpstan/phpstan-phpunit: ^1.3.16
- phpstan/phpstan-symfony: ^1.3.7
- phpunit/phpunit: ^9.6.17
- symfony/browser-kit: ^5.4 || ^6.4
- symfony/http-client: ^5.4 || ^6.4
- symfony/monolog-bundle: ^3.10
- symfony/phpunit-bridge: ^7.0.4
- vimeo/psalm: ^5.22.2
README
GitHub | Packagist | Changelog
This bundle is a connector bundle for the relay-blob-bundle to store blob data on the filesystem.
It implements the DatasystemProviderServiceInterface
of the blob bundle.
It can save files to a specific path, rename those files, remove those files, or return short-lived share-links.
Requirements
You need the DbpRelayBlob bundle installed to make this bundle working, see DbpRelayBlobBundle.
Bundle installation
You can install the bundle directly from packagist.org.
composer require dbp/relay-blob-connector-filesystem-bundle
Integration into the Relay API Server
- Add the bundle to your
config/bundles.php
in front ofDbpRelayCoreBundle
:
... Dbp\Relay\BlobBundle\DbpRelayBlobConnectorFilesystemBundle::class => ['all' => true], Dbp\Relay\BlobBundle\DbpRelayBlobBundle::class => ['all' => true], Dbp\Relay\CoreBundle\DbpRelayCoreBundle::class => ['all' => true], ];
If you were using the DBP API Server Template as template for your Symfony application, then this should have already been generated for you.
- Run
composer install
to clear caches
Configuration
The bundle has multiple configuration values that you can specify in your app, either by hard-coding it, or by referencing an environment variable.
For this create config/packages/dbp_relay_blob_connector_filesystem.yaml
in the app with the following
content:
dbp_relay_blob_connector_filesystem: path: '%kernel.project_dir%/var/blobFiles' # path where files should be placed link_url: 'http://localhost:8000/' # base link_url of the api
For more info on bundle configuration see https://symfony.com/doc/current/bundles/configuration.html.
Development & Testing
- Install dependencies:
composer install
- Run tests:
composer test
- Run linters:
composer run lint
- Run cs-fixer:
composer run cs-fix
Bundle dependencies
Don't forget you need to pull down your dependencies in your main application if you are installing packages in a bundle.
# updates and installs dependencies of dbp/relay-blob-bundle and dbp/relay-blob-connector-filesystem-bundle
composer update dbp/relay-blob-bundle
composer update dbp/relay-blob-connector-filesystem-bundle
Scripts
Database migration
Run this script to migrate the database. Run this script after installation of the bundle and after every update to adapt the database to the new source code.
php bin/console doctrine:migrations:migrate --em=dbp_relay_blob_connector_filesystem_bundle
Functionality
/blob/filesystem/{identifier}
GET
Returns a binary file response of a sharelink id if the sharelink is valid and it exists
Error codes
relay:errorId | Status code | Description | relay:errorDetails | Example |
---|---|---|---|---|
blobConnectorFilesystem:no-identifier-set |
400 | No identifier set | message |
|
blobConnectorFilesystem:download-file |
400 | No file with this share id found | message |
|
blob-connector-filesystem:save-file-error |
400 | File could not be uploaded | message |
|
blob-connector-filesystem:generate-sharelink-error |
400 | Sharelink could not generated | message |
|
blob-connector-filesystem:fileshare-not-found |
403 | Fileshare was not found! | message |
|
blob-connector-filesystem:path-not-generated |
500 | Path could not be generated | message |
|
blob-connector-filesystem:sharelink-not-saved |
500 | ShareLink could not be saved! | message |
CronJobs
Cleanup Cronjob
Blob Connector Filesystem Database cleanup
: This cronjob is for cleanup purposes. It deletes all invalid sharelinks and starts every hour.