Skip to main content
drupalreleases
Release: Cms 2.2.3 — Update released for Drupal core (2.2.3)! Release: Easy Breadcrumb 2.0.11 — Minor update available for module easy_breadcrumb (2.0.11). Release: Bootstrap 8.x-3.42 — Minor update available for theme bootstrap (8.x-3.42). Release: Search API attachments 10.0.13 — Minor update available for module search_api_attachments (10.0.13). Release: Editoria11y Accessibility Checker 3.0.10 — Minor update available for module editoria11y (3.0.10). Release: Editoria11y Accessibility Checker 2.2.24 — Minor update available for module editoria11y (2.2.24). Release: Mismatched entity and/or field definitions 1.2.1 — Minor update available for module meaofd (1.2.1). Release: Lupus Custom Elements Renderer 2.8.1 — Minor update available for module lupus_ce_renderer (2.8.1). Module Revived: Bootstrap 8.x-3.41 — Theme bootstrap updated after 6 months of inactivity (8.x-3.41). Security Coverage: Component Library — Module component_library now has official Drupal security advisory coverage.

This module deduplicates uploaded files by storing unique content only once, using content hashes to reference them. It preserves normal Drupal file behavior, allowing multiple file entities to point to the same underlying data and ensuring proper access control. This is ideal for media-heavy sites to reduce redundant storage.

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.

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
7
Tracked since
May 2026
Latest release
4 months ago
Releases (12 mo)
7 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
1.0.0-beta3 Pre-release 10–11 May 16, 2026
1.0.0-beta2 Pre-release 10–11 May 15, 2026
1.0.0-beta1 Pre-release 10–11 May 15, 2026
1.0.0-alpha3 Pre-release 10–11 May 12, 2026
1.0.0-alpha2 Pre-release 10–11 May 12, 2026
1.x-dev Dev 10–11 May 12, 2026
1.0.0-alpha1 Pre-release 10–11 May 12, 2026