academe / laravel-azure-file-storage-driver
Azure File Storage filesystem driver for Laravel
Installs: 101 460
Dependents: 0
Suggesters: 0
Security: 0
Stars: 16
Watchers: 3
Forks: 1
Open Issues: 4
Requires
- php: >=8.1
- consilience/flysystem-azure-file-storage: ^1.0
Requires (Dev)
- orchestra/testbench: ~3.3|~3.4|~3.5|~3.6
- phpunit/phpunit: ^6.0|^7.0|^9.0
README
Microsoft Azure File Storage Filesystem Driver for Laravel 6, 7 and 9
This package allows Microsoft Azure File Storage to be used as a filesystem in laravel 5 and 6.
Installation
composer require academe/laravel-azure-file-storage-driver
This package just extends the filesystem driver, and provides no additional services.
Configuration
Add the following to your config/filesystems.php
:
[ ... 'disks' => [ ... // Name this disk for your application to reference. 'azure-file-storage' => [ // The driver provided by this package. 'driver' => 'azure-file-storage', // Account credentials. 'storageAccount' => env('AZURE_FILE_STORAGE_ACCOUNT'), 'storageAccessKey' => env('AZURE_FILE_STORAGE_ACCESS_KEY'), // The file share. // This driver supports one file share at a time (you cannot // copy or move files between shares natively). 'fileShareName' => env('AZURE_FILE_STORAGE_SHARE_NAME'), // Optional settings 'disableRecursiveDelete' => false, 'driverOptions' => [], 'root' => 'root/directory', // Without leading '/' ], ], ];
If you want to use multiple Azure file storage shares, then create additional
entries in the disks
array with the appropriate settings for each share.
An example list of environment variable entries can be found in .env.example
.
You can add that to your .env
file and add your credentials there.
Usage
See the Laravel documentation for general usage of a file system in Laravel. A simple example follows:
use Storage;
// List all files recursively from the root of the Azure share:
$files = Storage::disk('azure-file-storage')->listAll();
dump($files);
// Example:
// array:25 [▼
// 0 => "file1.txt"
// 1 => "foo/file2.txt"
// 2 => "foo/dee/dar/bigfile.txt"
// ]
Testing
PHPunit tests will work against any file storage share given
criteria set in .env
based on .env.example
.