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.
You can choose between many drivers: local, ftp, sftp, memory, awsS3, googleCloudStorage, azureBlobStorage, webdav, zipArchive.
# Local StorageFILE_SYSTEM_DRIVER=local# FTP StorageFILE_SYSTEM_DRIVER=ftp# SFTP StorageFILE_SYSTEM_DRIVER=sftp# Memory StorageFILE_SYSTEM_DRIVER=memory# AWS S3 StorageFILE_SYSTEM_DRIVER=awsS3# Google Cloud StorageFILE_SYSTEM_DRIVER=googleCloudStorage# Azure Blob StorageFILE_SYSTEM_DRIVER=azureBlobStorage# WebDAV StorageFILE_SYSTEM_DRIVER=webdav# Zip Archive StorageFILE_SYSTEM_DRIVER=zipArchive
Advanced Settings: Some settings are only available when you use a specific file system driver. Below you can find the advanced settings for each driver.
# Local StorageFILE_SYSTEM_DRIVER=local# File System Settings of the `local` driverFILE_SYSTEM_LOCAL_ROOT_DIRECTORY=<root>
# FTP StorageFILE_SYSTEM_DRIVER=ftp# File System Settings of the `ftp` driverFILE_SYSTEM_FTP_HOST=FILE_SYSTEM_FTP_ROOT=FILE_SYSTEM_FTP_USERNAME=FILE_SYSTEM_FTP_PASSWORD=FILE_SYSTEM_FTP_PORT=FILE_SYSTEM_FTP_SSL=FILE_SYSTEM_FTP_TIMEOUT=FILE_SYSTEM_FTP_UTF8=FILE_SYSTEM_FTP_PASSIVE=FILE_SYSTEM_FTP_TRANSFER_MODE=FILE_SYSTEM_FTP_SYSTEM_TYPE=FILE_SYSTEM_FTP_SYSTEM_IGNORE_PASSIVE_ADDRESS=FILE_SYSTEM_FTP_TIMESTAMPS_ON_UNIX_LISTING_ENABLED=FILE_SYSTEM_FTP_RECURSE_MANUALLY=
# SFTP StorageFILE_SYSTEM_DRIVER=sftp# File System Settings of the `sftp` driverFILE_SYSTEM_SFTP_HOST=FILE_SYSTEM_SFTP_USERNAME=FILE_SYSTEM_SFTP_PASSWORD=FILE_SYSTEM_SFTP_PRIVATE_KEY=FILE_SYSTEM_SFTP_PASSPHRASE=FILE_SYSTEM_SFTP_PORT=FILE_SYSTEM_SFTP_USE_AGENT=FILE_SYSTEM_SFTP_TIMEOUT=FILE_SYSTEM_SFTP_MAX_TRIES=FILE_SYSTEM_SFTP_HOST_FINGERPRINT=FILE_SYSTEM_SFTP_CONNECTIVITY_CHECKER=
# Memory StorageFILE_SYSTEM_DRIVER=memory
# WebDAV StorageFILE_SYSTEM_DRIVER=webdav# File System Settings of the `webdav` driverFILE_SYSTEM_WEBDAV_BASE_URI=FILE_SYSTEM_WEBDAV_USERNAME=FILE_SYSTEM_WEBDAV_PASSWORD=
# Zip Archive StorageFILE_SYSTEM_DRIVER=zipArchive# File System Settings of the `zipArchive` driverFILE_SYSTEM_ZIP_ARCHIVE_PATH=
# AWS S3 StorageFILE_SYSTEM_DRIVER=awsS3# File System Settings of the `awsS3` driverFILE_SYSTEM_AWS_S3_BUCKET_NAME=<your-bucket-name>FILE_SYSTEM_AWS_S3_PATH_PREFIX=<optional-path-prefix>FILE_SYSTEM_AWS_S3_ASYNC=false
# Google Cloud StorageFILE_SYSTEM_DRIVER=googleCloudStorage# File System Settings of the `googleCloudStorage` driverFILE_SYSTEM_GOOGLE_CLOUD_STORAGE_BUCKET_NAME=<your-bucket-name>FILE_SYSTEM_GOOGLE_CLOUD_STORAGE_PATH_PREFIX=<optional-path-prefix>
# Azure Blob StorageFILE_SYSTEM_DRIVER=azureBlobStorage# File System Settings of the `googleCloudStorage` driverFILE_SYSTEM_AZURE_BLOB_STORAGE_CONTAINER_NAME=<your-container-name>FILE_SYSTEM_AZURE_BLOB_STORAGE_PATH_PREFIX=<optional-path-prefix>
Usage
// if the class is aware of injections$fileSystem =$this->fileSystem;// if the container is present$fileSystem =$this->di->get('fileSystem');// to access the shared db service$fileSystem =Di::getDefault()->get('fileSystem');