Documentation / @zerotal/core / storage / StorageFilesMiddleware
Class: StorageFilesMiddleware
Defined in: storage/StorageFilesMiddleware.ts:48
Serves files from a storage disk over HTTP.
Only disks that declare serve in config/storage.ts are reachable; the rest
have no URL at all. That is the safe default for a disk holding private
uploads — exposure is something you ask for, one disk at a time, rather than
something you remember to switch off.
Router.static() cannot do this job: it registers the files it finds at boot,
so anything uploaded afterwards is invisible until a restart. This resolves
per request, through the driver, so an S3-backed disk can be proxied the same
way a local one is served.
Example
// config/storage.ts — public assets, and private files behind signed links
disks: {
public: { driver: "local", root: "./storage/public",
serve: { path: "/storage/public" } },
private: { driver: "local", root: "./storage/invoices",
serve: { path: "/files", signed: true } },
}
Extends
Constructors
Constructor
new StorageFilesMiddleware():
StorageFilesMiddleware
Defined in: middleware/BaseMiddleware.ts:36
Returns
StorageFilesMiddleware
Inherited from
Properties
options
protectedoptions:StorageFilesOptions={}
Defined in: storage/StorageFilesMiddleware.ts:49
Subclasses must declare this with their default option values. TypeScript enforces this at compile time — forgetting it is a type error.
Overrides
Methods
with()
staticwith<T,Opts>(this,options): () =>InstanceType<T>
Defined in: middleware/BaseMiddleware.ts:48
Returns a zero-arg subclass with the given options deep-merged on top of the subclass defaults, usable directly in app.use([...]).
Type Parameters
T
T extends (...args) => BaseMiddleware<any>
Opts
Opts = T extends (...args) => BaseMiddleware<U> ? U : object
Parameters
this
T
options
Partial<Opts>
Returns
() => InstanceType<T>
Inherited from
afterResponse()?
optionalafterResponse(ctx):Promise<void>
Defined in: middleware/BaseMiddleware.ts:70
Parameters
ctx
Returns
Promise<void>
Inherited from
onError()?
optionalonError(ctx,error):Promise<void>
Defined in: middleware/BaseMiddleware.ts:71
Parameters
ctx
error
Error
Returns
Promise<void>
Inherited from
handle()
handle(
http,next):Promise<void|Response>
Defined in: storage/StorageFilesMiddleware.ts:51
Parameters
http
next
Returns
Promise<void | Response>