Skip to content

enl/flysystem-cloudinary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

407fa71 · Feb 21, 2018

History

82 Commits
Jan 19, 2018
Feb 21, 2018
Feb 21, 2018
Feb 21, 2018
Jan 18, 2018
Feb 21, 2018
Feb 21, 2018
Jun 18, 2015
Jan 19, 2018
Feb 21, 2018
Aug 3, 2015
Nov 10, 2017

Repository files navigation

Enl\Flysystem\Cloudinary

Build Status Software License Coverage Status

This is a Flysystem adapter for Cloudinary API.

Installation

composer require enl/flysystem-cloudinary '~1.0'

Or just add the following string to require part of your composer.json:

{
    "require": {
        "enl/flysystem-cloudinary": "~1.0"
    }
}

Bootstrap

<?php
use Enl\Flysystem\Cloudinary\ApiFacade as CloudinaryClient;
use Enl\Flysystem\Cloudinary\CloudinaryAdapter;
use League\Flysystem\Filesystem;

include __DIR__ . '/vendor/autoload.php';

$client = new CloudinaryClient([
    'cloud_name' => 'your-cloudname-here',
    'api_key' => 'api-key',
    'api_secret' => 'You-know-what-to-do',
    'overwrite' => true, // set this to true if you want to overwrite existing files using $filesystem->write();
]);

$adapter = new CloudinaryAdapter($client);
// This option disables assert that file is absent before calling `write`.
// It is necessary if you want to overwrite files on `write` as Cloudinary does it by default.
$filesystem = new Filesystem($adapter, ['disable_asserts' => true]);

Cloudinary features

Please, keep in mind three possible pain-in-asses of Cloudinary:

  • It adds automatically file extension to its public_id. In terms of Flysystem, cloudinary's public_id is considered as filename. But if you set public_id as 'test.jpg' Cloudinary will save the file as 'test.jpg.jpg'. In order to work it around, you can use PathConverterInterface.
  • It does not support folders creation through the API
  • If you want to save your files using folder you should set public_ids like 'test/test.jpg' and allow automated folders creation in your account settings in Cloudinary dashboard.

Good news!

The library supports Cloudinary Transformations!