First steps
In this tutorial I assume that you have already prepared your Laravel project environment and have begginer/intermediate knowledge in PHP/Laravel.
First of all, we need to prepare our object storage environment on Vultr's admin panel. If you don't have a Vultr account just create one here. As soon as you have created your account you'll need to create an object storage and then a bucket. For this tutorial focus on how to implement this feature on Laravel i'll just skip this steps and leave a link wich explain all of them here.
1. Installing required packages
To achieve our goal, we need to install flysystem. Flysystem is a well-known file storage library for PHP, it supports many filesystems and provides interfaces for all of them. In our case we'll specifically use aws-s3 but if you want to know more about the library feel free to visit their official documentation page here
composer require league/flysystem-aws-s3-v3
2. Configuration on Laravel
After we've successfully installed our dependency we need now to communicate Laravel that we have a new filesystem and it's credentials.
In config\filesystems.php
on disks
array you'll add the following:
'vultr' => [
'driver' => 's3',
'key'=> env('VULTR_ACCESS_KEY'),
'secret' => env('VULTR_SECRET_KEY'),
'region' => env('VULTR_REGION'),
'bucket' => env('VULTR_BUCKET'),
'endpoint' => env('VULTR_ENDPOINT'),
],
obs: You can obtain all this information in vult's panel on object storage section.
3. Environment variables
Now we need to add our credentials to .env
to authenticate and execute the proper functions.
VULTR_ACCESS_KEY=youraccesskey
VULTR_SECRET_KEY=yoursecretkey
VULTR_REGION=sjc1
VULTR_BUCKET=yourbucket
VULTR_ENDPOINT=https://sjc1.vultrobjects.com
4. And Voilà!
Now we can just call our storage class specifying the previously configured vultr disk:
Storage::disk('vultr')->putFile('uploads', request()->file, 'public');
Now we can perform all object storage action within our laravel application!
References
https://laravel.com/docs/11.x/filesystem
https://ecwebservices.medium.com/how-to-use-vultr-object-storage-with-laravel-8-a21256f1b4a1
Top comments (0)