Skip to content

Azure Blob Storage Wrapper with prefix support for Laravel framework

License

Notifications You must be signed in to change notification settings

impratick/laravel-azure-blob-storage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 [email protected].

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.

About

Azure Blob Storage Wrapper with prefix support for Laravel framework

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages