carlosocarvalho/flysystem-cloudinary

Flysystem adapter for Cloudinary

v2.0.4 2023-04-25 19:39 UTC

README

Cloudinary adapter for The PHP League Flysystem v3

Codacy Badge Author Latest Stable Version Total Downloads License Suggesters Dependents composer.lock Monthly Downloads

Install

  composer require carlosocarvalho/flysystem-cloudinary

Configuration

You can configure the package in two different ways.

Using CLOUDINARY_URL

You can configure the library using the environment variable CLOUDINARY_URL. Whe using CLOUDINARY_URL you have access to the underlying Cloudinary SDK without instantiating the adapter or explicit instantiating the Cloudinary SDK.

You can read more in their documentation https://cloudinary.com/documentation/php_integration#setting_the_cloudinary_url_environment_variable

use CarlosOCarvalho\Flysystem\Cloudinary\CloudinaryAdapter;
use League\Flysystem\Filesystem;

$adapter = new CloudinaryAdapter();
$filesystem = new Filesystem( $adapter );

Manual configuration

use CarlosOCarvalho\Flysystem\Cloudinary\CloudinaryAdapter;
use League\Flysystem\Filesystem;

$config = [
    'api_key' => ':key',
    'api_secret' => ':secret',
    'cloud_name' => ':name',
];

$adapter = new CloudinaryAdapter($config);
$filesystem = new Filesystem( $adapter );

Example

List contents and others actions use Filesystem api

#Options use file type resource





$filesystem->listContents()

Add Resource Type list in container image,video, raw

CloudinaryAdapter::$resourceType = \Cloudinary\Asset\AssetType::IMAGE;
$filesystem->listContents()

For use in laravel

To use in Laravel register you must register the driver. Learn how to register a custom filesystem in the Laravel Documentation.

    use Illuminate\Filesystem\FilesystemAdapter;
    use Illuminate\Support\Facades\Storage;
    use League\Flysystem\Filesystem;
    use CarlosOCarvalho\Flysystem\Cloudinary\CloudinaryAdapter;

    ...

    Storage::extend('cloudinary', function ($app, $config) {
        if(!empty(env('CLOUDINARY_URL'))){
            $adapter = new CloudinaryAdapter();
        }else{
            $adapter = new CloudinaryAdapter($config);
        }

        return new FilesystemAdapter(
            new Filesystem($adapter, $config),
            $adapter,
            $config
        );
    });

Access this repository