carlosocarvalho / flysystem-cloudinary
Flysystem adapter for Cloudinary
Installs: 131 917
Dependents: 6
Suggesters: 1
Security: 0
Stars: 22
Watchers: 2
Forks: 14
Open Issues: 2
Requires
- php: >=8.0.2
- cloudinary/cloudinary_php: ^2.10
- league/flysystem: ^3.14
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/php-code-coverage: 9.2.*
- phpunit/phpunit: 9.5.*
- symfony/var-dumper: ^3.4.39
- vlucas/phpdotenv: ^4.1
This package is auto-updated.
Last update: 2024-12-02 21:11:23 UTC
README
Cloudinary adapter for The PHP League Flysystem v3
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 ); });