• 28 Apr, 2024

iDrive Cloud Storage Integration with Laravel 10: A Comprehensive Guide

iDrive Cloud Storage Integration with Laravel 10: A Comprehensive Guide

Unlock the power of iDrive Cloud Storage in your Laravel 10 projects with our step-by-step guide. Streamline file storage, enhance security, and boost scalability. Learn more!

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)

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.