Function
Read per call rather than at module load, so a developer can repoint content in dev without restarting the Node process. Both callers — the dependency graph and the signing endpoint — go through here, so they can never disagree about where content lives.
The two variables are deliberately machine-scoped rather than placement
decisions: CONTENT_LOCATIONS_PATH says where the manifest is, and
CONTENT_LOCAL_ROOT says where the local driver reads bytes from. WHICH
store owns an asset is the manifest's job. Neither is NEXT_PUBLIC_:
resolution happens on the server and resolved URLs reach the client as plain
props.
The application's
BlobStore, configured from the environment.