Automatically registers every third-party Flysystem adapter it recognizes as a Laravel Filesystem Driver.
Registers recognized third-party Flysystem adapters with Laravel automatically.
This lets you use third-party adapters without having to write your own service providers to load them properly. It automatically detects which adapters are available, and registers only the ones actually installed. It also detects whether the Eventable version of Flysystem is available, and if so, it switches to it, letting you listen in on Flysystem events and affect them accordingly.
NOTE: While this package only recognizes adapters NOT officially supported by The PHP League, it does depend on danhunsaker/laravel-flysystem-service, so installing this package will let you use them as well.
The usual methods for using Composer apply here:
composer require danhunsaker/laravel-flysystem-others
This package uses Laravel's auto-discovery feature for the service provider, but
if you're using a Laravel version before 5.5, you do still have to register one
service – but only one, and at least you don't have to write it. Be sure to
with the new one:
// In config/app.php 'providers' => [ // ... Danhunsaker\Laravel\Flysystem\FlysystemOtherServiceProvider::class, // ... ],
danhunsaker/laravel-flysystem-service, you don't need to add it as well.
In fact, doing so will probably cause some issues with your app, as both
providers will attempt to handle the PHP League drivers at the same time.
Of course, you'll want to read through its
README as well, to see what options
it supports that this package piggy-backs on, such as those for the cache
For added flexibility, such as the ability to open ZIP files on remote storage,
you can also install twistor/flysystem-stream-wrapper, which will register
each of the drives in your
config/filesystems.php file as a stream protocol
(though only when each is accessed the first time, unless you add them to the
autowrap parameter in the configuration). In the example of accessing remote
ZIP files, you would then simply need to prefix the ZIP file's path with the
name of the drive it's available on, as a URL scheme (something like
Finally, as with
danhunsaker/laravel-flysystem-service, you can get example
definitions for all supported filesystem drivers by publishing the replacement
filesystems config - just run the following Artisan command:
php artisan vendor:publish --provider=Danhunsaker\\Laravel\\Flysystem\\FlysystemOtherServiceProvider --force
--force flag is required to overwrite the existing
that ships with Laravel. You can also rename the existing file, then run the
command without the
--force flag, if you'd like to preserve the existing
contents for transfer to the new file.
The best place to check for which adapters are supported by this package is the Composer suggestions, but here's a quick (not-guaranteed-up-to-date) list as well:
Aliyun OSS: aliyuncs/aliyun-oss-flysystem, aobozhang/aliyun-oss-adapter, apollopy/flysystem-aliyun-oss, orzcc/aliyun-oss, shion/aliyun-oss, xxtime/flysystem-aliyun-oss, monster/flysystem-aliyun-oss (only used if no other
ossadapter is available, because it uses the
Leaguenamespace, but isn't a PHP League package),
Backblaze B2: mhetreramesh/flysystem-backblaze
Baidu Bos: zhuxiaoqiao/flysystem-baidu-bos
Citrix ShareFile: kapersoft/flysystem-sharefile
ClamAV (Virus Scanning): mgriego/flysystem-clamav
Mirror: A "meta-adapter" which combines the Fallback and Replicate adapters, if both are available.
OpenStack Swift: nimbusoft/flysystem-openstack-swift
NOTE: If you install more than one of the adapters listed above for the same storage service, only the first one – in alphabetical order by namespace – will be used, unless otherwise noted above.
Pull requests, bug reports, and so forth are all welcome on GitHub.
Security issues should be reported directly to danhunsaker (plus) laraflyplus (at) gmail (dot) com.
And head to GitHub for everything else.