marchiorineto/cloudflare-images-laravel

Provides access to the Cloudflare Images service for Laravel.

1.0.0 2024-03-06 12:11 UTC

This package is not auto-updated.

Last update: 2024-05-02 11:23:03 UTC


README

Provides access to Cloudflare Images service for Laravel.

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

Table of contents

Installation

To get the latest version of CloudflareImagesLaravel, simply require the project using Composer:

composer require marchiorineto/cloudflare-images-laravel

Or manually update the require block of composer.json and run composer update.

{
    "require": {
        "marchiorineto/cloudflare-images-laravel": "^1.0.0"
    }
}

Configuration

Set environment variables:

  • CLOUDFLARE_IMAGES_ACCOUNT - Cloudflare account ID
  • CLOUDFLARE_API_TOKEN - Cloudflare API token
  • CLOUDFLARE_IMAGES_KEY - Create a CF images key under the Images section of your Cloudflare account
  • CLOUDFLARE_IMAGES_DELIVERY_URL - Copy the images delivery base url from the Cloudflare images dashboard

Usage

Create a variant

use MarchioriNeto\CloudflareImagesLaravel\CloudflareImages;
use MarchioriNeto\CloudflareImagesLaravel\ImageVariant;

$variant = new ImageVariant('tiny');
$variant->fit('contain')
    ->width(50)
	->height(50)
	->metaData('keep');
	
$cfImages = new CloudflareImages();
$cfImages->createVariant($variant);

Upload an image

use MarchioriNeto\CloudflareImagesLaravel\CloudflareImages;

$cfImages = new CloudflareImages();
// Pass either a file path or a file resource as the first parameter.
// If you want the image to be private (always require signed urls), pass true as the second parameter.
$cfImages->upload('/path/to/image.jpg', true);

Generate a signed URL

use MarchioriNeto\CloudflareImagesLaravel\CloudflareImages;

$cfImages = new CloudflareImages();
$cfImages->getSignedUrl('image-uuid', new DateTime('+1 day'));

Overriding configuration

You can override the environment variables by passing new properties to the CloudflareImages constructor.

use MarchioriNeto\CloudflareImagesLaravel\CloudflareImages;

$cfImages = new CloudflareImages('CLOUDFLARE_IMAGES_ACCOUNT', 'CLOUDFLARE_API_TOKEN', 'CLOUDFLARE_IMAGES_KEY', 'CLOUDFLARE_IMAGES_DELIVERY_URL');

Based on

work from https://github.com/alexbuckham/CloudflareImagesLaravel