academe/laravel-azure-file-storage-driver

Azure File Storage filesystem driver for Laravel

1.0.1 2022-06-07 12:43 UTC

This package is auto-updated.

Last update: 2024-04-07 16:59:38 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version GitHub license GitHub issues

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.