azure-oss/storage-blob-flysystem-bundle
league/flysystem-aws-s3-bundle parity) and leverages Flysystem’s abstraction for multi-cloud compatibility.league/flysystem-bundle (v3.7+) is functionally identical, reducing adaptation effort. The bundle’s design (Symfony config + Flysystem adapter) mirrors Laravel’s service container and config-based extensions (e.g., spatie/laravel-medialibrary).framework.yaml/config/packages, which Laravel’s config/services.php or package-specific configs can emulate.preUpload, postDelete), useful for logging/auditing.league/flysystem-bundle (v3.7+) shares the same API, requiring only:
config/packages with Laravel’s config/services.php or a package-specific config file.AppServiceProvider).league/flysystem-bundle (≥3.7) and azure/storage-blob (≥2.0). Laravel’s Composer resolver handles these..env can store these securely.services.yaml vs. Laravel’s config). Mitigate by:
config() helper to dynamically load bundle configs.AzureBlobStorage class to add Laravel-specific methods (e.g., disk()->putFromBase64()).BlockBlobUploadOptions.)StorageException) be logged/alerted? (Flysystem events can trigger Laravel’s logging.)storage_path()) that need redirecting to Azure?league/flysystem-bundle) is natively supported in Laravel. The bundle’s filesystem_disks config maps directly to Laravel’s config('filesystems.disks').azure:blob:sync) that can be wrapped in Laravel’s Artisan::call().azure/storage-queue package can complement this.composer require league/flysystem-bundle azure/storage-blob-flysystem-bundle-php
config/filesystems.php to include an azure_blob disk:
'disks' => [
'azure_blob' => [
'driver' => 'azure_blob',
'bucket' => env('AZURE_BLOB_CONTAINER'),
'endpoint' => env('AZURE_BLOB_ENDPOINT'),
'connection' => 'default',
'options' => [
'connection_string' => env('AZURE_STORAGE_CONNECTION_STRING'),
'blob_options' => [
'overwrite' => false, // Enable for idempotent writes
],
],
],
],
Storage::disk('azure_blob')->put('test.txt', 'Hello Azure!');
$content = Storage::disk('azure_blob')->get('test.txt');
config/packages/azure_blob.yaml to Laravel’s config/services.php or a package-specific config.EventServiceProvider:
protected $listen = [
'league.flysystem.file.writing' => [
\App\Listeners\LogAzureUpload::class,
],
];
AzureBlobAdapter::putFromRequest()).phpunit/azure-storage-testing).league/flysystem-bundle to v3.x.azure/storage-blob (≥2.0) supports PHP 8.0+. Ensure compatibility with Azure’s latest SDK.cache, visibility), verify they work with the Azure adapter. Some plugins (e.g., symfony-flysystem-bundle) may need Laravel-specific wrappers.Storage::allDisks()).app-uploads/, user-avatars/).disk() method to dynamically switch backends.Storage::copy() between disks).How can I help you explore Laravel packages today?