Asset management
File naming conventions for media archives
A filename is the one piece of metadata that cannot be stripped. It survives export, email, re-encoding, and every system the file passes through on its way somewhere else. That makes it the last line of defence, and it is why…
It also means the filename should be doing a narrow job. It is not a caption and it is not a search index. It exists to make a file identifiable when everything else about it has been lost.
What belongs in the name
Four things, and preferably not a fifth.
Date, written as YYYYMMDD. Sorted alphabetically, files then sort chronologically, everywhere, in every tool, without configuration. No other format does this.
A short source or job code. Three or four characters identifying the assignment, publication or photographer. Fixed length, from a list.
A sequence number, zero-padded to a width that will not run out. Four digits is usually right; three is a decision to regret.
A variant marker, where derivatives exist: the size, the crop, or the purpose.
Joined with hyphens, that produces names like 20260914-hset-0042.jpg and 20260914-hset-0042-web.jpg. Ugly, unambiguous, sortable, and readable by a person who has never seen the library.
What does not belong
The subject. It is tempting and it is wrong. Subjects need synonyms, they need updating when someone's title changes, and they need more characters than a filename should carry. Subject is what the keyword facet is for.
Spaces. They break in URLs, in shell commands, in scripts, and in half the systems a file will pass through. A file with spaces in its name will eventually arrive somewhere as three separate broken references.
Anything but lowercase letters, digits, hyphens and one dot. Accented characters, ampersands, slashes, colons and quotation marks each break somewhere specific, and the break is usually silent. Some file systems treat upper and lower case as the same name and some do not, which turns two files into one during a copy.
Version words. final, final2, final-revised, FINAL-use-this. Versioning is a property of the asset record. In a filename it is a story about a bad afternoon.
Dates in any other format. 14-09-26 is three different dates depending on who reads it.
Length and depth
Keep names under about sixty characters. Long names get truncated in interfaces, wrapped in emails and rejected by systems with path-length limits — and the limit applies to the whole path, so deep folders and long names compound.
The same logic argues for shallow storage. A path with eight nested folders spends its character budget on structure that the library's facets already express better.
Derivatives
Every derivative should be traceable to its master by name alone. Keep the master's stem and append the variant: -web, -thumb, -print, -sq for a square crop.
This is what makes it possible to answer, from a designer's returned file and nothing else, which original it came from. Renaming a derivative independently severs that link permanently, because no metadata survives the round trip reliably.
Never rename in place
Once a file has been published, quoted, linked or handed to somebody outside, its name is a public identifier. Changing it breaks the references, and the references are held by people who will not be told.
If the convention changes — and over a long enough archive it will — apply it to new material and leave the old alone. A library with two conventions and a documented cut-over date is entirely workable. A library that was renamed in bulk in 2014 is a library where every link from before 2014 is dead and nobody knows which ones.
The convention is only as good as the point it is applied
Names should be assigned at ingest, automatically, by the system that receives the files. Asking photographers and reporters to name files correctly is asking for compliance in the least controlled part of the workflow.
We rename on arrival and keep the original filename in a metadata field. That field costs nothing, and it has repeatedly been the only way to reconnect a file with the email that delivered it.
Conclusion
Date first in YYYYMMDD, a fixed source code, a padded sequence, a variant suffix where needed, lowercase with hyphens, nothing else. Put meaning in the metadata and identity in the name. Assign it at ingest and never rename what has already been published. The filename is the part of the record that survives when the rest is gone — it only has to do that one job, and it has to do it for thirty years.