All Projects → matthewbdaly → Laravel Azure Storage

matthewbdaly / Laravel Azure Storage

Licence: mit
Microsoft Azure Blob Storage integration for Laravel's Storage API

Projects that are alternatives of or similar to Laravel Azure Storage

Azure Spring Boot
Spring Boot Starters for Azure services
Stars: ✭ 352 (+153.24%)
Mutual labels:  azure, azure-storage
Azure Readiness Checklist
This checklist is your guide to the best practices for deploying secure, scalable, and highly available infrastructure in Azure. Before you go live, go through each item, and make sure you haven't missed anything important!
Stars: ✭ 457 (+228.78%)
Mutual labels:  azure, azure-storage
Spring Cloud Azure
Spring Cloud integration with Azure services
Stars: ✭ 197 (+41.73%)
Mutual labels:  azure, azure-storage
Denunciado
This project born from the need from people to have a way of communication between municipalities and communities. Some municipalities, have their platforms, but they are complex to validate the veracity of complaints. Denounced, it was born with the purpose of offering a free platform to these municipalities. Denounced consists of three main modules developed with Microsoft technologies, using the .Net Framework and Xamarin for its development: 1. Back End Web Project: Module of administration of the complaints, by the employees of the town councils. In this tool, the employees of the city council receive, validate, report and close the complaints, after being served. 2. Web Portal Client: It consists of a web project, so that the community make their complaints, in the same, the users of the service create a profile, must specify when making their complaint, evidence to support this. Through the portal, they can see the complaints of other community members, follow it, give their opinion or provide possible solutions or more evidence. 3. Mobile Project: It has the same functionalities as the web portal, with the addition, that the automatic location can be sent, from the cell phone.
Stars: ✭ 183 (+31.65%)
Mutual labels:  azure, azure-storage
Azurestorageexplorer
☁💾 Manage your Azure Storage blobs, tables, queues and file shares from this simple and intuitive web application.
Stars: ✭ 88 (-36.69%)
Mutual labels:  azure, azure-storage
Azure.data.wrappers
Azure Storage Simplified
Stars: ✭ 34 (-75.54%)
Mutual labels:  azure, azure-storage
Storage
💿 Storage abstractions with implementations for .NET/.NET Standard
Stars: ✭ 380 (+173.38%)
Mutual labels:  azure, azure-storage
Serverless Url Shortener
Azure Function for a URL shortening website. Uses serverless functions, Azure Table Storage and Application Insights.
Stars: ✭ 113 (-18.71%)
Mutual labels:  azure, azure-storage
Developing Solutions Azure Exam
This repository contains resources for the Exam AZ-203: Developing Solutions for Microsoft Azure. You can find direct links to resources and and practice resources to test yourself ☁️🎓📚
Stars: ✭ 59 (-57.55%)
Mutual labels:  azure, azure-storage
Azure For Developers Workshop
The Azure cloud is huge and the vast service catalog may appear daunting at first, but it doesn’t have to be!
Stars: ✭ 38 (-72.66%)
Mutual labels:  azure, azure-storage
Azurite
!! This repository has now moved to https://github.com/azure/azurite !! A lightweight server clone of Azure Blob, Queue, and Table Storage that simulates most of the commands supported by it with minimal dependencies.
Stars: ✭ 103 (-25.9%)
Mutual labels:  azure, azure-storage
Blobxfer
Azure Storage transfer tool and data movement library
Stars: ✭ 120 (-13.67%)
Mutual labels:  azure, azure-storage
Laravel Api Explorer
API explorer for laravel applications
Stars: ✭ 138 (-0.72%)
Mutual labels:  laravel
Jigsaw
Simple static sites with Laravel’s Blade.
Stars: ✭ 1,823 (+1211.51%)
Mutual labels:  laravel
Laravel Analytics Event Tracking
Laravel package to easily send events to Google Analytics
Stars: ✭ 137 (-1.44%)
Mutual labels:  laravel
Laravel Easypanel
A beautiful and flexible admin panel creator based on Livewire for Laravel
Stars: ✭ 135 (-2.88%)
Mutual labels:  laravel
Steam
A composer package to make use of the steam web api.
Stars: ✭ 139 (+0%)
Mutual labels:  laravel
Laravel5 Angular Material Starter
Get started with Laravel 5.3 and AngularJS (material)
Stars: ✭ 1,692 (+1117.27%)
Mutual labels:  laravel
Laravel Backend
Backend for Laravel 4
Stars: ✭ 137 (-1.44%)
Mutual labels:  laravel
Laravel Dotenv Editor
The .env file editor tool for Laravel 5.8+
Stars: ✭ 137 (-1.44%)
Mutual labels:  laravel

laravel-azure-storage

Build Status Coverage Status

Microsoft Azure Blob Storage integration for Laravel's Storage API.

This is a custom driver for Laravel's File Storage API, which is itself built on top of Flysystem. It uses Flysystem's own Azure blob storage adapter, and so can't easily add any more functionality than that has - indeed, adding that would be out of scope for the project.

Installation

Install the package using composer:

composer require matthewbdaly/laravel-azure-storage

On Laravel versions before 5.5 you also need to add the service provider to config/app.php manually:

    Matthewbdaly\LaravelAzureStorage\AzureStorageServiceProvider::class,

Then add this to the disks section of config/filesystems.php:

        'azure' => [
            'driver'    => 'azure',
            'name'      => env('AZURE_STORAGE_NAME'),
            'key'       => env('AZURE_STORAGE_KEY'),
            'container' => env('AZURE_STORAGE_CONTAINER'),
            'url'       => env('AZURE_STORAGE_URL'),
            'prefix'    => null,
        ],

Finally, add the fields AZURE_STORAGE_NAME, AZURE_STORAGE_KEY, AZURE_STORAGE_CONTAINER and AZURE_STORAGE_URL to your .env file with the appropriate credentials. The AZURE_STORAGE_URL field is optional, this allows you to set a custom URL to be returned from Storage::url(), if using the $root container the URL will be returned without the container path. A prefix can be optionally used. If it's not set, the container root is used. Then you can set the azure driver as either your default or cloud driver and use it to fetch and retrieve files as usual.

For details on how to use this driver, refer to the Laravel documentation on the file storage API.

Custom endpoints

The package supports using a custom endpoint, as in this example:

        'azure' => [
            'driver'    => 'azure',
            'name'      => env('AZURE_STORAGE_NAME'),
            'key'       => env('AZURE_STORAGE_KEY'),
            'container' => env('AZURE_STORAGE_CONTAINER'),
            'url'       => env('AZURE_STORAGE_URL'),
            'prefix'    => null,
            'endpoint'  => env('AZURE_STORAGE_ENDPOINT'),
        ],

Then you can specify a suitable value for AZURE_STORAGE_ENDPOINT in your .env file as normal.

SAS token authentication

With SAS token authentication the endpoint is required. The value has the following format: https://[accountName].blob.core.windows.net

        'azure' => [
            'driver'    => 'azure',
            'sasToken'  => env('AZURE_STORAGE_SAS_TOKEN'),
            'container' => env('AZURE_STORAGE_CONTAINER'),
            'url'       => env('AZURE_STORAGE_URL'),
            'prefix'    => null,
            'endpoint'  => env('AZURE_STORAGE_ENDPOINT'),
        ],

Caching

The package supports disk based caching as described in the Laravel documentation. This feature requires adding the package league/flysystem-cached-adapter:

composer require league/flysystem-cached-adapter:^1.1

To enable caching for the azure disk, add a cache directive to the disk's configuration options.

        'azure' => [
            'driver'    => 'azure',
            // Other Disk Options...
            'cache'     => [
                'store' => 'memcached',
                'expire' => 600,
                'prefix' => 'filecache',
            ]
        ],

Retries

The Azure Storage SDK ships a middleware to retry failed requests. To enable the retry middewalre, add a retry directive to the disk's configuration options.

        'azure' => [
            'driver'    => 'azure',
            // Other Disk Options...
            'retry'     => [
                'tries' => 3,                   // number of retries, default: 3
                'interval' => 500,              // wait interval in ms, default: 1000ms
                'increase' => 'exponential'     // how to increase the wait interval, options: linear, exponential, default: linear
            ]
        ],

Support policy

This package is supported on the current Laravel LTS version, and any later versions. If you are using an older Laravel version, it may work, but I offer no guarantees, nor will I accept pull requests to add this support.

By extension, as the current Laravel LTS version required PHP 7.0 or greater, I don't test it against PHP < 7, nor will I accept any pull requests to add this support.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].