impratick/laravel-azure-blob-storage

Azure Blob Storage Wrapper with prefix support for Laravel framework

1.0.0 2020-05-07 11:45 UTC

README

Laravel Azure Blob Storage wrapper for Flysystem Azure Blob Storage with prefix support and easy integration with Spatie's Media Library.

Package includes:

Installation

You can install the package via composer:

composer require impratick/laravel-azure-blob-storage

Usage

The Service Provider is automatically registered on Laravel >= 5.5.

Configure your disk in config/filesystem.php

    'disks' => [
        'azure' => [
            'driver'          => 'azure',
            'account'         => [
                'name' => env('AZURE_ACCOUNT_NAME'),
                'key'  => env('AZURE_ACCOUNT_KEY'),
            ],
            'endpoint-suffix' => env('AZURE_ENDPOINT_SUFFIX', 'core.windows.net'),
            'container'       => env('AZURE_CONTAINER', 'public'),
            'prefix'          => env('AZURE_BLOB_FOLDER_NAME', null),
        ]
    ]

Here prefix is needed if you have custom folder structure, if not then set to null

  • project-storage
    • local/folders
    • staging/folders
    • production/folders

So as per above scenario value of AZURE_CONTAINER would be project-storage and AZURE_BLOB_FOLDER_NAME would be as per environment (local/staging/production) any.

For integration with Media Library

Install and configure Media Library.

Add the following to config/medialibrary.php

    'azure' => [
        'domain'    => 'https://' . env('AZURE_ACCOUNT_NAME') . '.blob.' . env('AZURE_ENDPOINT_SUFFIX') .
        '/' . env('AZURE_CONTAINER') .
        (env('AZURE_BLOB_FOLDER_NAME') ? '/' . env('AZURE_BLOB_FOLDER_NAME') : ''),
    ],

     /*
     * When urls to files get generated, this class will be called. Leave empty
     * if your files are stored locally above the site root or on s3.
     */
    'url_generator' => (env('MEDIA_DISK', 'public') == 'azure'
        ? Impratick\ExtendedAzureBlobStorage\MediaLibrary\UrlGenerator\AzureBlobUrlGenerator::class
        : null),

Changelog

Please review CHANGELOG for more information.

Security

If you discover any security related issues, please feel free to report at padia.pratik94@gmail.com.

Credits

This package was made based on A skeleton repository for Spatie's PHP Packages.

License

The MIT License (MIT). Please see License File for more information.