Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Role Theme Switcher Module role_theme_switcher crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

User Media Library

1 sites Security covered
View on drupal.org

This module provides each user with their own personal media library, allowing them to upload and manage their own images. It enables users to upload new photos, reuse existing ones, and delete or replace their uploaded images from a dedicated gallery page.

Gives each user their own personal media library: upload an image, reuse one
you've already uploaded elsewhere on the site, and manage (replace/delete)
your own photos from a dedicated gallery page.

Features

This module simply provides a user_photo media bundle,
a settings form controlling upload limits, and the plumbing (a reusable upload-handling service, an EXIF-stripping service, and a custom entity reference selection plugin) that any other module can build on top of to let a user attach one of their own images to some piece of content.

Any feature wanting "let a user attach one of their own images" references the user_photo media bundle this module provides, and calls user_media_library.upload_handler to create one from a raw upload.

See chirp_photo_gallery (a submodule of the chirp module) for a working example of a consumer integration.

Post-Installation

Installation

drush en user_media_library -y

Configuration

Navigate to Configuration → Media → User Media Library
(/admin/config/media/user-media-library), gated behind the
administer user media library permission.

Setting Default Description Maximum upload size 5 MB Rejects an upload outright if it exceeds this. Allowed file extensions jpg jpeg png gif Space-separated, no leading dot. Maximum image width 1200px See "Oversized images" below — scales down, never rejects. Maximum image height 1200px Same behavior as width. Remove location/device data by default Enabled Only sets the default state of a checkbox each uploader still sees and can change per-upload — never silently strips or silently keeps EXIF data without the uploader's own choice being visible.

Per-user management and permissions

Management (replace/delete your own photos) reuses Drupal core's own Media
entity edit/delete forms directly — there is no bespoke manage logic to
configure. Drupal generates the following permissions automatically for the
user_photo bundle; assign them per role as your site requires:

Permission Typical audience create user_photo media Any role allowed to upload photos at all edit own user_photo media/
delete own user_photo media Same as above — lets a user manage their own uploads edit any user_photo media/
delete any user_photo media Site administrators only — for cleanup (archiving unused images, removing a departed member's leftovers, or removing an image that was itself the reason some piece of content got reported/moderated)

Deliberately not granted to whatever role manages your site's general
media library (e.g. image bundle content editors) — user_photo is a
separate bundle specifically so a site can keep "who manages the public media
library" and "who manages personal photo uploads" as two different,
independently-assignable sets of permissions, without any extra code.

Additional Requirements

- Drupal `^11.3`
- `drupal:media`
- `drupal:media_library`
- `drupal:image`

Supporting this Module

This module is supported by Lisa Harrison (lisa.rae), an individual contributor and long-time member of the Drupal community.

Activity

Tracked releases
4
Tracked since
Jul 2026
Latest release
1 week ago
Releases (12 mo)
4 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.1.0-rc3 Pre-release Aug 14, 2026
1.1.0-rc2 Pre-release Aug 14, 2026
1.1.x-dev Dev Aug 14, 2026
1.1.0-rc1 Pre-release Jul 6, 2026