OverviewBack to top
Most of the cloud service providers offer files/objects storage services (e.g.: Amazon S3, Google Cloud Storage, or Azure Blob Storage) which could be used as remote filesystems with various advantages in terms of performance, stability, or costs over the mounted network disks on the computing system.
This extension provides the underlying structure for the new filesystem driver implementation (consisting of configuration and mapping for new filesystem drivers) in order to integrate any remote filesystem in the Magento ecosystem at the application-level. Additional filesystem drivers are developed as standalone packages. Also, to use the directory mapping for the existing directories under the "pub" directory you need to install Bb_StorageOverwrites (currently in alpha phase). For example:
- store CMS media files directly on the remote filesystem without touching the server disk.
- all the raw-served files could easily be served directly from there or through a CDN.
- the product media files could also be stored in a cloud object storage, but in this case, the resized images should be served through a reverse proxy server with a fallback on the resizing endpoint.
- even better, you can extract the image resize feature as a microservice and reduce your project complexity. Read more about the Magento 2 headless implementation.
Account & Pricing
Additional charges may apply depending on the use-case.
- This extension pre-requires an account for the storage service of your choice:
- A filesystem driver extension is needed for each particular storage service for 50$ each (for now, only the "Amazon S3 Integration Driver" extension is available in Magento Marketplace here). Check the project roadmap for updates related to other driver extensions for the most popular storage services.
- (optional) For mapping, the existing subdirectories under the Magento's "pub" directory to an external filesystem, additional extensions are needed
- Bb_StorageOverwrites - 100$ (currently in alpha phase, will be published soon in Magento Marketplace)
- Compatibility improvements for the Magento's core modules where filesystem architecture is not strictly followed (available in alpha phase)
- Bb_StorageCatalog - free
- Bb_StorageDownloadable - free
- Bb_StorageCms - free
- configure connections for multiple remote filesystems with specific parameters (the filesystem driver implementation will be available as an additional module)
- define new directories for custom development, mapped to a specific filesystem driver
- create a mapping for existing/core directories of Magento (eg: pub/media).
- extension of core Driver interface with new features, specific to multiple remote filesystems
- register new drivers objects with the specific configurations on demand for global usage
- Integrate new filesystem type for custom development at the application level and perform operations using the Magento Filesystem related interfaces.
- Perform backups or migration for static files at the application-level, configuring directory mapping between the local filesystem and remote filesystem
- Relocate media files to a cloud storage service (eg: Amazon S3, Azure Blob Storage) without needing to mount the remote filesystem or duplicate files in the local filesystem. This scenario requires the additional purchase of this extension Bb_StorageOverwrites which is in the alpha phase now. Read more about replacing local storage with cloud storage service.
- Develop, scale, and improve the media storage system independently as a microservice. This extension together with the Bb_StorageOverwrites extension could serve as a baseline of relocating static files to a specialized microservice system in the context of the Magento 2 headless implementation.
Storing static files inside the computing system involves some work when you decide to scale horizontally, but having all static files stored in a cloud object storage service (as an external “micro-service”) could ease the deployment process, at the same time reducing the complexity and improving the performance of the system. You can check some application architecture examples, to guide you in the process.
Having a specialized microservice for storage, processing, and delivery of all the static content allows the developers to scale and improve this area independently. It is clear now, that this may be a big plus because the website's performance affects the customer experience, the conversions, and the advertisement costs (lately, the advertisers are more and more careful about the website performance). The main advantages of having a remote filesystem integration at the application level vary based on the configuration:
- Zero read overhead for content delivery. Having the storage system always mounted on all the application's servers could add some overhead depending on the driver, but using this extension the two systems are fully decoupled allowing media storage improvements to be deployed independently (eg: compression or other actions)
- Reduce overhead on write operations
- Decentralized architecture using Bb_StorageOverwrites
As explained before this module could be integrated into various scenarios, depending on the need. This demo exemplifies use case number 3, described before, and you will find the step by step actions and results.
Currently, only the driver extension for Amazon S3 is available at an additional cost. There are future plans for implementing other driver extensions for Azure Blob Storage and Google Cloud Storage integration. Read more about extension dependencies on the documentation page.
There are plenty of subjects and examples covered in the documentation about the extensibility, configuration, and application architecture improvements. If you want to contribute with documentation or request new features you can do it on the project GitHub page.
Technical SpecificationsBack to top
Adobe Commerce platform compatibility
Open Source (CE): 2.3 (current), 2.4 (current)
Commerce on prem (EE): 2.3 (current), 2.4 (current)
02 December, 2020
Extensions, Content & Customizations, Personalization & Experience Management, Product Content, Rich Media
Chrome, Firefox, Opera, Safari, Edge, IE
Quality ReportBack to top
All tests were conducted on the latest versions of Adobe Commerce that existed for the compatible release lines at the moment of the extension submission. Latest versions of all other software were used, as applicable.
Release NotesBack to top
- Compatible with Open Source (CE) : 2.3 2.4
- Compatible with Commerce on prem (EE) : 2.3 2.4
- Stability: Stable Build
- Extended API for the Magento Filesystem component to make it compatible with multiple filesystem types.
- New configuration provider for filesystem drivers and directory mapping at the application level (service contracts included).
SupportBack to top
The best place to start if you need help with a specific extension is to contact the developer. All Adobe Commerce developers have both a contact email and a support email listed.Contact Vendor