Laravel, a widely used PHP web framework, offers a streamlined storage system. This system provides a unified interface for working with diverse storage options, like local drives, Amazon S3, and FTP.
Laravel's storage system empowers you to manage files across diverse storage options, known as disks
. These disks can be your local file system, cloud storage services like Amazon S3, or even FTP servers.
To interact with a specific disk, you simply use the disk method. This method returns an instance of the file system object for that disk, allowing you to perform various operations on stored files and directories, including creating, reading, updating, and deleting them.
For example, to retrieve an instance of the iDrive disk, you can use the following code:
$disk = Storage::disk('idrive');
This will give you a way to work with files on your computer using a specific file system.
Before we begin, ensure that you have the following installed:
- Laravel 10
- Composer (for installing packages)
- IDrive account (sign up at https://www.idrive.com/)
- IDrive API credentials (generate from your IDrive account)
Table of contents [Show]
Learn how to integrate iDrive with Laravel 10
You will need to follow below steps:
Step 1: Install Flysystem-AWS
Firsly, we need to install Flysystem-AWS package, which will allow us to work with iDrive as if it were Amazon S3. So now open your terminal and run the following command:
composer require league/flysystem-aws-s3-v3
Step 2: Configure iDrive credentials
Now, we need to configure iDrive credentials in the config/filesystems.php
file. So add the following configuration under the disks
array:
'idrive' => [
'driver' => 's3',
'key' => env('IDRIVE_API_KEY'),
'secret' => env('IDRIVE_API_SECRET'),
'region' => env('IDRIVE_REGION'),
'bucket' => env('IDRIVE_BUCKET'),
'version' => env('IDRIVE_VERSION'),
'endpoint' => env('IDRIVE_ENDPOINT'),
'use_path_style_endpoint' => true,
],
Don't forget to replace YOUR_IDRIVE_API_KEY
, YOUR_IDRIVE_API_SECRET
, and YOUR_IDRIVE_BUCKET_NAME
with your actual iDrive API key, API secret, and bucket name respectively. You can find these details in your iDrive account.
Step 3: Update .env
Add the following configuration to your .env
file:
IDRIVE_API_KEY=YOUR_IDRIVE_API_KEY
IDRIVE_API_SECRET=YOUR_IDRIVE_API_SECRET
IDRIVE_REGION=Chicago
IDRIVE_BUCKET=YOUR_IDRIVE_BUCKET_NAME
IDRIVE_VERSION=latest
IDRIVE_ENDPOINT=YOUR_IDRIVE_ENDPOINT
Step 4: Use iDrive Disk in Laravel
Next, you can use the iDrive disk in your Laravel application to perform file operations. For example, to store a file:
use Illuminate\Support\Facades\Storage;
Storage::disk('idrive')->put('file.txt', 'Hello, IDrive!');
To retrieve a file you can use the following function:
$fileContents = Storage::disk('idrive')->get('file.txt');
Conclusion
Connecting IDrive to your Laravel 10 project with Flysystem-AWS makes it easy to use IDrive's cloud storage features. This integration lets you safely store and access files from IDrive, keeping your data secure and available.