dbp/relay-blob-connector-filesystem-bundle
relay-blob-bundle, adhering to Laravel/Symfony’s bundle architecture. It extends the DatasystemProviderServiceInterface, making it a plug-and-play solution for filesystem-based blob storage.relay-blob-bundle, allowing flexibility to swap storage backends (e.g., S3, database) later.filesystem config) may require minor adjustments.relay-blob-bundle as a dependency, reducing integration complexity.Filesystem component, which Laravel can use via symfony/filesystem or its native Storage facade.save, rename, delete) and shareable URLs, fitting Laravel’s file-handling patterns.relay-blob-bundle: Tight coupling with an external bundle (not widely adopted; 0 stars/dependents) introduces vendor lock-in risk. If relay-blob-bundle changes its interface, this connector may break.config/filesystems.php).Storage facade or FilesystemManager.relay-blob-bundle?
Vapor, S3, or database drivers) that better fit the use case?relay-blob-bundle evolves or breaks?Storage facade (with local driver) or spatie/laravel-medialibrary suffice?Filesystem) that Laravel can consume via symfony/http-foundation or symfony/filesystem.Storage facade for unified filesystem handling.relay-blob-bundle and its dependencies for conflicts with existing Laravel packages.relay-blob-bundle).composer require dbp/relay-blob-connector-filesystem-bundle dbp/relay-blob-bundle symfony/filesystem
config/bundles.php (Symfony-style) or register a Laravel service provider (custom wrapper recommended).config/services.php or a custom config file:
'relay_blob_filesystem' => [
'path' => storage_path('app/relay-blobs'),
'url' => env('RELAY_BLOB_URL', 'http://storage.example.com'),
],
// app/Providers/AppServiceProvider.php
public function register()
{
$this->app->bind(
\Dbp\Relay\BlobBundle\Service\DatasystemProviderServiceInterface::class,
\Dbp\Relay\BlobBundle\Connector\Filesystem\FilesystemDatasystemProvider::class
);
}
Storage facade.ContainerInterface. In Laravel, use a facade or adapter to bridge the gap.// app/Facades/RelayBlobFacade.php
public static function storeBlob($data, $path) {
return app(DatasystemProviderServiceInterface::class)->save($path, $data);
}
local, s3) is compatible with Laravel’s Storage expectations.filesystem config.symlink for large files).Cache facade).relay-blob-bundle and relay-blob-connector-filesystem-bundle for breaking changes.telescope).Storage or a third-party package (e.g., spatie/laravel-medialibrary) if issues arise.local driver).flock in PHP).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Filesystem full/permission denied | Blob uploads fail silently. | Set up disk monitoring (e.g., laravel-filesystem-monitor). |
| Network partition (shared FS) | Inconsistent file states. | Use a distributed filesystem or object storage. |
| Bundle version incompatibility | Breaking changes in relay-blob-bundle. |
Pin versions in composer.json. |
| Shareable URL leakage | Unauthorized access to blobs. | Implement Laravel’s signed URLs or rate-limiting. |
| AGPL compliance violation | Legal risk if project is proprietary. | Fork the bundle or use a permissively licensed alternative. |
How can I help you explore Laravel packages today?