- Can I use this package directly in Laravel, or is it only for Symfony?
- This package is Symfony-focused but works in Laravel via Flysystem. Use it with spatie/laravel-flysystem by registering the `azure_oss` adapter in `config/filesystems.php`. Alternatively, manually integrate league/flysystem and the underlying azure-oss/storage-blob-flysystem package. Laravel lacks a native flysystem-bundle, so a workaround is required.
- What Laravel versions does this package support?
- The package itself is framework-agnostic but requires league/flysystem (v3.x recommended) and a Laravel Flysystem integration like spatie/laravel-flysystem (v3.x+). Tested with Laravel 8.x, 9.x, and 10.x, but ensure your Flysystem adapter version matches the package’s dependencies. Check the underlying azure-oss/storage-blob-flysystem for SDK compatibility.
- How do I configure Azure connection strings securely in Laravel?
- Store Azure connection strings in Laravel’s `.env` file (e.g., `AZURE_CONNECTION_STRING`). Use environment variables for SAS tokens or credentials to avoid hardcoding. For production, consider integrating with Laravel Forge, Envoyer, or a secrets manager like HashiCorp Vault. The package reads these values from the `options` array in your Flysystem configuration.
- Does this package support advanced Azure Blob Storage features like SAS tokens or CDN integration?
- Yes, the underlying azure-oss/storage SDK supports SAS tokens, CDN integration, and other advanced features. Verify feature parity by checking the [azure-oss/storage-blob-flysystem documentation](https://azure-oss.github.io/category/storage-blob-flysystem). If a feature is missing, it may require custom implementation or waiting for updates from the maintainers.
- What’s the difference between this package and azure-oss/storage-blob-laravel?
- This package (`azure-oss/storage-blob-symfony`) is a Symfony bridge for Flysystem, while `azure-oss/storage-blob-laravel` is a dedicated Laravel filesystem driver. Choose the former if you’re using Flysystem (e.g., with spatie/laravel-flysystem) or need multi-cloud consistency. The Laravel-specific package is simpler for pure Laravel projects without Flysystem.
- How do I migrate from S3 to Azure Blob Storage using this package?
- Replace your S3 adapter (e.g., `aws`) with the `azure_oss` adapter in your Flysystem config. Update connection strings, container names, and permissions. Test data transfers with a small subset first, then validate metadata (e.g., file permissions, timestamps). Use Laravel’s filesystem disk switching or a migration script to automate the process.
- Will this package work with existing Flysystem adapters in my Laravel app?
- Yes, the package integrates seamlessly with existing Flysystem setups. If you’re already using spatie/laravel-flysystem, add the `azure_oss` adapter to your `config/filesystems.php` alongside other adapters (e.g., `local`, `s3`). The package follows Flysystem’s adapter pattern, so no breaking changes to your existing storage logic are expected.
- Are there performance differences between Azure Blob Storage and S3 when using this package?
- Azure Blob Storage may introduce latency differences compared to S3, depending on your region and Azure’s global infrastructure. Benchmark critical operations (e.g., uploads, downloads) in your staging environment. Use Azure’s [Storage Explorer](https://azure.microsoft.com/en-us/products/storage/storage-explorer/) to monitor performance metrics. For low-latency needs, consider Azure’s CDN or edge caching.
- How do I handle errors or debug issues with this package in Laravel?
- Enable Flysystem’s logging by configuring the adapter’s `debug` option or using Laravel’s logging facade. Check the [azure-oss/storage-blob-flysystem docs](https://azure-oss.github.io/category/storage-blob-flysystem) for common errors. For Azure-specific issues, validate your connection string, container permissions, and network connectivity. Use `try-catch` blocks around Flysystem operations to log exceptions.
- Is this package actively maintained, or should I consider alternatives?
- This package is part of the community-driven azure-oss suite, which actively maintains Azure PHP SDKs after Microsoft’s abandonment. Monitor the [GitHub repo](https://github.com/Azure-OSS/azure-storage-blob-symfony-php) for updates. Alternatives include the dedicated `azure-oss/storage-blob-laravel` package (for pure Laravel) or third-party adapters, but this option offers better Flysystem integration and multi-cloud consistency.