Migrate Media File Delete Contrib to Core

Created on 16 June 2023, almost 2 years ago
Updated 22 April 2024, 12 months ago

Problem/Motivation

@larowlan's β†’ Media file delete β†’ contrib module ...

...gives content editors the option to delete the associated file when deleting a media entity.

It's a relatively new module so the number of reported installs (4,987 as of 7/16/23) IMO isn't a deciding factor as to whether or not the functionality of this module should be migrated to Core, but I'll never build a site (personal or professional) without this module installed as it makes it much easier for content/media editors to do just want the module says. The functionality of this module also saves space over time by eliminating unnecessary files from the file system as many editors might not understand the relationship between media and files and might not know that deleting the media item does not automatically delete the associated file. All that to say, should the functionality of the Media file delete contrib module be migrated to core? Go ...

Without Media File Delete module installed a content/media editor would have to:

  1. Install the views_bulk_operations module (or similar) to add a delete operation at /admin/content/files
  2. Navigate to /admin/content/media
  3. Search for the media item
  4. Edit the media item
  5. Copy the file name
  6. Delete the media item
  7. Navigate to /admin/content/files
  8. Paste the file name in the Filename field
  9. Click filter
  10. Select the file
  11. And finally, at long last, delete the file

WITH the Media File Delete module installed a content/media editor would have to:

  1. Navigate to /admin/content/media
  2. Search for the media item
  3. Delete the media item AND delete the file at the same time

Features

  • Give content editors the option to delete the associated file when deleting a media entity
  • Prevents deletion if the file is in use in other locations
  • Prevents deletion if the user does not have access
  • Adds a new 'delete any file' permission, allowing power-users to bypass core's You can only delete files you own behavior
  • Optional support for the Entity Usage module when determining if the file is in use. Enable the Media File Delete Entity Usage sub-module to turn this functionality on. This will allow you to prevent deletion if there are uses of the file not tracked by core's File usage API e.g. direct links in body fields to the file.

Steps to reproduce

Proposed resolution

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

✨ Feature request
Status

Active

Version

11.0

Component
MediaΒ  β†’

Last updated about 19 hours ago

Created by

πŸ‡ΊπŸ‡ΈUnited States Chris Matthews

Live updates comments and jobs are added and updated live.
  • Needs product manager review

    It is used to alert the product manager core committer(s) that an issue represents a significant new feature, UI change, or change to the "user experience" of Drupal, and their signoff is needed. If an issue significantly affects the usability of Drupal, use Needs usability review instead (see the governance policy draft for more information).

Missing content requested by

πŸ‡¦πŸ‡ΊAustralia dpi
over 1 year ago
Sign in to follow issues

Comments & Activities

  • Issue created by @Chris Matthews
  • πŸ‡ΊπŸ‡ΈUnited States Chris Matthews

    There is also File Delete β†’ with 14,312 reported installs

    The File Delete module adds the ability to easily delete files β€”both private and publicβ€” within Drupal administration.

    It changes files from the "Permanent" status to the "Temporary" status. These files will be deleted by Drupal during its cron runs.

    If a file is registered as being used somewhere, the Module will not allow it to be deleted.

  • πŸ‡¦πŸ‡ΊAustralia larowlan πŸ‡¦πŸ‡ΊπŸ.au GMT+10

    +1 from me, it has good test coverage and very little code

  • πŸ‡ΊπŸ‡ΈUnited States Chris Matthews

    I suppose the 'Media File Delete settings' that live in the contrib module at /admin/config/media/media_file_delete/settings would live in core at /admin/config/media/media-settings

  • πŸ‡ΊπŸ‡ΈUnited States Chris Matthews

    Moving to Drupal core ideas queue for consensus as to whether or not to move forward with the proposed idea to merge the functionality of the Media File Delete contrib module into Core.

  • πŸ‡¬πŸ‡§United Kingdom AaronMcHale Edinburgh, Scotland

    Big +1 from me.

    I would have assumed that deleting a media entity would also delete the files that were uploaded into that entity, and I think that is probably what a lot of content editors and site builders would have expected.

    Think about the workflow from the point of view of a content editor who receives a request to delete an image:

    1. We need to remove this image because (for instance) a person in it has withdrawn their consent.
    2. We go to the media library and delete the image (aka the media entity, but editors don't think in terms of entities they just think about the thing they are deleting).
    3. The editor think that's it done, they go back to the person and say that it's been deleted; But then, either: the editor check (just to be safe) and get confused when they find the image still actually exists, or they don't check and the person that originally requested the deletion sends a follow-up request asking why it was not actually deleted even though the editor said it was.

    So, yes I'm 100% to this.

  • +1 from me, too. The lack of this functionality is really the only reason I'm hesitant about using Media for images. I don't want to accrue lots of orphan files over time.

  • πŸ‡¬πŸ‡§United Kingdom catch

    Broadly +1 to this too, but we also need to resolve 🌱 Dealing with unexpected file deletion due to incorrect file usage Active . Potentially this could be the answer - make file deletion not automatic, but explicit and opt-in, and then assume that people aren't re-using the same file across media items and in other random places and deleting it without checking. Then just drop the entire file_usage system with no replacement.

  • πŸ‡ΊπŸ‡ΈUnited States Chris Matthews

    -

  • πŸ‡¦πŸ‡ΊAustralia larowlan πŸ‡¦πŸ‡ΊπŸ.au GMT+10

    Fwiw The current module doesn't show the option if file usage detects has a record of another usage

    It also integrates with entity usage if that is available

  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    +1 from me. This feels like table stakes for any file-based media type. I think deleting the associated file should be the default behavior; if it's not in the CMS, it doesn't make sense (from my own personal user perspective) for it to persist in the filesystem.

Production build 0.71.5 2024