Managed versus unmanaged files
The Drupal File API allows us to handle files in two different ways. Files essentially boil down to two categories: they are either managed or unmanaged. The difference between the two lies in the way the files are used.
Managed files work hand-in-hand with the Entity system and are, in fact, tied to File entities. So, whenever we create a managed file, an entity gets created for it as well, which we can use in all sorts of ways. And the table where these records are stored is called file_managed
. Moreover, a key aspect of managed files is the fact that their usage is tracked. This means that if we reference them on an entity or even manually indicate that we use them, this usage is tracked in a secondary table called file_usage
. This way, we can see where each file is used and how many times, and Drupal even provides a way to delete “orphaned” files after a specific time if they are no longer needed.
A notable example of using managed...