vezolabs / pimcore-cloud-storage-bundle
Production-Ready Cloud Storage Manager for Pimcore 12 Studio supporting Amazon S3, Azure Blob, and Google Cloud Storage
Package info
github.com/vezolabs/pimcore-cloud-storage-bundle
Type:pimcore-bundle
pkg:composer/vezolabs/pimcore-cloud-storage-bundle
Requires
- php: ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- aws/aws-sdk-php: ^3.0
- google/cloud-storage: ^1.40 || ^2.0
- league/flysystem: ^3.0
- league/flysystem-aws-s3-v3: ^3.0
- league/flysystem-azure-blob-storage: ^3.0
- league/flysystem-google-cloud-storage: ^3.0
- microsoft/azure-storage-blob: ^1.5
- pimcore/pimcore: ^2025.0 || ^2026.0
- pimcore/studio-backend-bundle: ^2025.0 || ^2026.0
- pimcore/studio-ui-bundle: ^2025.0 || ^2026.0
- symfony/security-bundle: ^6.4 || ^7.0 || ^8.0
Requires (Dev)
- phpunit/phpunit: ^10.0 || ^11.0 || ^12.0 || ^13.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Pimcore Cloud Storage Manager is an enterprise-grade extension built for Pimcore 12 Studio. It enables business administrators to configure, test, migrate, and activate external cloud asset storage providers (Amazon S3, Microsoft Azure Blob Storage, Google Cloud Storage, and compatible S3 services) directly from the browser without editing PHP, YAML, environment variables, or server configurations.
Technical administrators install the package once via Composer. From that point forward, all routine operations, provider setup, live connection testing, and asset migrations are handled directly through the Pimcore Studio UI (accessible via Settings → Cloud Storage).
Screenshots & Interface
| Cloud Storage Dashboard | 5-Step Guided Provider Wizard |
|---|---|
![]() |
![]() |
| Storage Behavior & Active Backend | Connection Diagnostics & Probes |
| :---: | :---: |
![]() |
![]() |
Video Walkthrough
A video walkthrough covering installation, configuration, and practical usage will be linked here.
Key Features
- Multi-Cloud Provider Support: Seamless integrations for Amazon S3 (and S3-compatible: MinIO, Ceph, Cloudflare R2, Wasabi, Backblaze B2), Microsoft Azure Blob Storage, Google Cloud Storage (GCS), and local application filesystem fallback.
- 5-Step Guided Setup Wizard: Visual cards, provider-specific conditional forms, real 4-phase probe testing, storage behavior rules, and review & explicit activation.
-
Zero-Downtime Hot-Swapping: Runtime dynamic Flysystem adapter (
DynamicCloudStorageAdapter) decorates Pimcore'sQueueAwareStorageAdapterso provider switching takes effect immediately across all requests without server restarts. -
Enterprise Credential Security: Credentials encrypted at rest using AES-256-GCM with HKDF key derivation from
PIMCORE_ENCRYPTION_SECRET. Zero secrets leaked in API payloads or browser displays; automated sanitization of keys and connection strings from application logs and exception traces. - Resumable Asset Migration Assistant: Preflight scan calculating total files and bytes, followed by memory-efficient $O(1)$ stream-based transfers with resume capability and audit tracking.
- Native Studio Integration: Directly embedded into Pimcore 12 Studio via Module Federation without legacy ExtJS or jQuery dependencies.
System Requirements & Compatibility
| Requirement | Supported Version |
|---|---|
| Pimcore | Pimcore 12 (^2025.0 or ^2026.0) with Studio UI |
| PHP | ^8.2, ^8.3, ^8.4, ^8.5 |
| Database | MariaDB 10.6+ or MySQL 8.0+ |
| Symfony | ^6.4, ^7.0, ^8.0 |
Legacy Pimcore Support & Customization
Need this functionality for an earlier Pimcore version, or require custom integrations?
- Pimcore 6, Pimcore 10, or Pimcore 11: Dedicated builds and backports tailored for classic Pimcore architectures.
- Custom Enterprise Integrations: Bespoke feature development, custom storage adapters, and private cloud integrations.
👉 Contact VezoLabs for Customization & Legacy Support
Installation
Quick One-Line Install
Run the following command in your Pimcore project root:
composer require vezolabs/pimcore-cloud-storage-bundle && \ bin/console pimcore:bundle:install VezolabsCloudStorageBundle && \ bin/console assets:install public && \ bin/console cache:clear
Step-by-Step Installation
1. Require Package via Composer
composer require vezolabs/pimcore-cloud-storage-bundle
2. Enable Bundle
If not auto-registered by Symfony Flex, add the bundle to config/bundles.php:
return [ // ... Vezolabs\CloudStorageBundle\VezolabsCloudStorageBundle::class => ['all' => true], ];
3. Run Bundle Installer & Migrations
bin/console pimcore:bundle:install VezolabsCloudStorageBundle
4. Publish Frontend Assets & Clear Cache
bin/console assets:install public bin/console cache:clear
Architecture Overview
flowchart TD
subgraph Studio UI
UI["React 18 + Ant Design 5<br/>(Module Federation: remoteEntry.js)"]
API["StudioCloudStorageApiController<br/>(/pimcore-studio/api/cloud-storage)"]
UI -->|REST API| API
end
subgraph Security & Storage Core
SEC["CredentialEncryptor<br/>(AES-256-GCM + HKDF)"]
REPO["StorageConfigurationRepository<br/>(pimcore_cloud_storage_configs)"]
API --> SEC
API --> REPO
end
subgraph Asset Operations
CORE["Pimcore Asset Operations<br/>(Upload, Read, Move, Delete, Thumbnails)"]
QUEUE["QueueAwareStorageAdapter<br/>(Pimcore Core Queue Wrapper)"]
DYNAMIC["DynamicCloudStorageAdapter<br/>(League Flysystem Adapter)"]
CORE --> QUEUE
QUEUE --> DYNAMIC
end
subgraph Providers
DYNAMIC --> S3["S3StorageProvider (AWS / MinIO / R2)"]
DYNAMIC --> AZURE["AzureBlobStorageProvider (Azure Blob)"]
DYNAMIC --> GCS["GoogleCloudStorageProvider (GCS)"]
DYNAMIC --> LOCAL["LocalStorageProvider (Local Filesystem)"]
end
Loading
CLI Management Commands
For automated environments, CI/CD pipelines, and DevOps workflows:
# View active storage backend and health diagnostics bin/console pimcore:cloud-storage:status # Run 4-phase connection probe on a configuration bin/console pimcore:cloud-storage:test aws-s3-prod # Switch active storage provider with zero application restart bin/console pimcore:cloud-storage:activate aws-s3-prod # Migrate assets between storage backends bin/console pimcore:cloud-storage:migrate --source=local-default --target=aws-s3-prod --dry-run
Documentation
Detailed documentation is available in the docs/ directory:
- Architecture & Design Details
- Provider Setup Guide (AWS S3, Azure, GCS, MinIO, R2)
- Asset Migration Guide
- Security & Encryption Model
- Troubleshooting & Diagnostics Guide
Contributing
Contributions are welcome. Please read CONTRIBUTING.md for coding standards and test execution.
License
This project is licensed under the MIT License.
Commercial Support & Consulting
VezoLabs provides professional consulting, enterprise deployment, and custom Pimcore development.
- Website: https://vezolabs.com
- Inquiries: https://vezolabs.com/contact



