Looking to hire Laravel developers? Try LaraJobs

laravel-azure-blob-storage maintained by impratick

Description
Azure Blob Storage Wrapper with prefix support for Laravel framework
Author
Last update
2022/06/21 19:47 (dev-dependabot/composer/guzzlehttp/guzzle-7.4.5)
License
Links
Downloads
4 693

Comments
comments powered by Disqus

Laravel Azure Blob Storage

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.