Skip to main content

HashedAssetNamingStrategy

HashedAssetNamingStrategy

An extension of the DefaultAssetNamingStrategy which prefixes file names with the type ('source' or 'preview') as well as a 2-character sub-directory based on the md5 hash of the original file name.

This is an implementation of the technique knows as "hashed directory" file storage, and the purpose is to reduce the number of files in a single directory, since a very large number of files can lead to performance issues when reading and writing to that directory.

With this strategy, even with 200,000 total assets stored, each directory would only contain less than 800 files.

Signature
class HashedAssetNamingStrategy extends DefaultAssetNamingStrategy {
generateSourceFileName(ctx: RequestContext, originalFileName: string, conflictFileName?: string) => string;
generatePreviewFileName(ctx: RequestContext, originalFileName: string, conflictFileName?: string) => string;
}

generateSourceFileName

method
(ctx: RequestContext, originalFileName: string, conflictFileName?: string) => string

generatePreviewFileName

method
(ctx: RequestContext, originalFileName: string, conflictFileName?: string) => string