flysystem-cloudinary v3
Cloudinary adapter for The PHP League Flysystem v3, (*1)
, (*2)
Install
composer require carlosocarvalho/flysystem-cloudinary
Configuration
You can configure the package in two different ways., (*3)
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., (*4)
You can read more in their documentation https://cloudinary.com/documentation/php_integration#setting_the_cloudinary_url_environment_variable, (*5)
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()
CloudinaryAdapter::$listContentsType = \Cloudinary\Asset\DeliveryType::UPLOAD;
$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., (*6)
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 , (*7)