UpCloud storage is 100% compatible with AWS S3 making connecting to laravel a straightforward process.
Configuring Laravel With UpCloud
We will make use of the existing laravel setup for connecting storage.
Checking Laravel S3 Dependencies
Make sure you already have the FlySystem S3 adapter installed in your projects compose dependencies.
composer require league/flysystem-aws-s3-v3
(Note: with Laravel 8 I found I needed to install version 1.0.29 to get it to work)
Setting up ENV
Add the following to your
.env file; you will need to extract this data from your UpCloud
UPCLOUD_KEY=[KEY] UPCLOUD_SECRET=[SECRET] UPCLOUD_ENDPOINT=https://[public endpoint].[region].upcloudobjects.com UPCLOUD_REGION=[REGION] UPCLOUD_BUCKET=[YOURBUCKET]
Editing the Config
I prefer to have new providers listed as its own in the storage. Find the disks array and add the following.
'upcloud' => [ 'driver' => 's3', 'key' => env('UPCLOUD_KEY'), 'secret' => env('UPCLOUD_SECRET'), 'endpoint' => env('UPCLOUD_ENDPOINT'), 'region' => env('UPCLOUD_REGION'), 'bucket' => env('UPCLOUD_BUCKET'), ],
Storage::disk('upcloud')->put('test.html', 'Hello World');
You should see the file uploaded to your UpCloud Bucket.
You could edit the default driver in laravel to now be Laravel
If you want files to be public you can edit this in UpCloud.