Drupal is a registered trademark of Dries Buytaert
drupal 10.6.8 Update released for Drupal core (10.6.8)! drupal 11.3.9 Update released for Drupal core (11.3.9)! drupal 11.3.8 Update released for Drupal core (11.3.8)! drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! linkit 7.0.14 Minor update available for module linkit (7.0.14). migrate_tools 6.1.4 Minor update available for module migrate_tools (6.1.4). diff 2.0.0 Major update available for module diff (2.0.0). masquerade 8.x-2.2 Minor update available for module masquerade (8.x-2.2). video_embed_field 3.1.0 Minor update available for module video_embed_field (3.1.0). bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). colorbox_inline 2.1.1 Minor update available for module colorbox_inline (2.1.1). node_view_permissions 8.x-1.7 Minor update available for module node_view_permissions (8.x-1.7).

atomic_cas

No security coverage
View on drupal.org

Atomic CAS provides content-addressable storage for Drupal file entities. Instead of storing every uploaded file as a separate physical copy, the module hashes file contents and stores the source bytes once per unique hash. Multiple file entities can reference the same underlying blob while preserving normal Drupal file semantics such as filenames, file entity IDs, and access control.

Features

  • Deduplicates uploaded source files by SHA-256 content hash.
  • Provides cas-public:// and cas-private:// stream wrappers.
  • Preserves Drupal file entity behavior with logical per-file URIs like cas-public://{fid}/{filename}.
  • Serves public files through versioned URLs and private files through Drupal-controlled access checks.
  • Deduplicates identical image style derivatives for CAS-backed images.
  • Provides Drush commands for migration, garbage collection, and blob auditing.

This module is useful for media-heavy Drupal sites where the same file is uploaded multiple times, such as editorial, local government, publishing, and document-heavy platforms.

Post-Installation

After enabling the module, configure protected blob storage roots in settings.php. Atomic CAS stores physical blobs outside normal public file handling and expects these directories to be writable by Drupal.

Typical setup:

  • Enable the module.
  • Add atomic_cas_public_root and atomic_cas_private_root to settings.php.
  • Choose or configure file fields that should use CAS-backed storage.
  • Use the provided Drush commands to migrate existing files if needed.
  • Use manual garbage collection after validating file references.

Public files are exposed through routed URLs. Private files remain protected by Drupal access control.

Additional Requirements

  • Drupal 10.3 or Drupal 11.
  • Writable filesystem locations for CAS public and private blob roots.
  • Drush is recommended for migration, audit, and garbage collection workflows.
  • Drush, for migration, auditing, and garbage collection commands.

Similar projects

Atomic CAS focuses specifically on deduplication via content-addressable storage while preserving Drupal file entity semantics. It is designed for sites that want to reduce duplicate file storage without replacing Drupal's file and media model with a remote-object-only workflow.

Supporting this Module

Issues, testing, documentation improvements, and real-world implementation feedback are all valuable contributions during the alpha stage.

Community Documentation

Project documentation should cover installation, required settings.php configuration, migration, rollback, image derivative behavior, and garbage collection workflow.

Status: This project is currently alpha. It is intended for early adopters and further validation before stable production use.

Activity

Total releases
4
First release
May 2026
Latest release
1 day ago
Release cadence
0 days
Stability
0% stable

Release Timeline

Releases

Version Type Release date
1.0.0-alpha3 Pre-release May 12, 2026
1.0.0-alpha2 Pre-release May 12, 2026
1.x-dev Dev May 12, 2026
1.0.0-alpha1 Pre-release May 12, 2026