This module provides a flexible way to manage your site's files by integrating with Flysystem, a PHP library that offers a consistent interface for various storage systems like local directories, Amazon S3, and SFTP. It can be used alongside or as a replacement for Drupal's core file handling, allowing easier switching between storage backends without code changes.
Provides a filesystem alternative to Drupal Core Filesystem and StreamWrappers, using Flysystem as Drupal stream wrappers.
This module can be used alongside Drupal Core Filesystem, but can potentially serve as a total replacement for Drupal Core’s Filesystem/StreamWrapper components.
From the Flysystem website:
Flysystem is a file storage library for PHP. It provides one interface to interact with many types of filesystems. When you use Flysystem, you’re not only protected from vendor lock-in, you’ll also have a consistent experience for which ever storage is right for you.
See the README for documentation.
Suppported Adapters
v3.0-alpha1, included with this module
- Local
- AsyncAws S3 Adapter
- Aws S3 (v3) Adapter (includes support for presigned URLs and Cloudfront)
- SFTP Adapter (V3), which uses version 3 of phpseclib
v2.3 and prior
- Local (Useful for replicas and replacing another adapter for local development)
- Ftp (Requires the ftp extension)
- Drupal Cache
- Sftp
- Dropbox
- Amazon Web Services - S3
- Aliyun OSS (阿里云对象存储)
- Google Cloud Storage
Key Feature Additions to v3
- Configurable adapters through the Drupal Admin UI, stored in Drupal config. This eliminates the need for configuring adapters in settings.php.
- Backwards compatibility support is included for settings.php configuration, for users who prefer this method, either because they are currently using Flysystem v2 (where this is the only option), or for enhanced site security. Please note, a scheme configuration in settings.php takes priority over a scheme configuration using Drupal Config. See the README for more information on configuring Flysystem v3.
- Conversion of the Adapter system to a Plugin based architecture, allowing contributors to add new Adapter plugins with a contrib module instead of a core Flysystem module patch (introduced in 3.0.0-beta1). Developer documentation is included in the module’s markdown files.
- A drush command that facilitates the creation of Drupal File and Media entities from unmanaged files on a Flysystem defined file system (introduced in 3.0.0-beta1).
Troubleshooting
If you are having trouble with this module, check the status page admin/reports/status. The status page runs all the Flysystem checks and provides useful error reporting.