AssetStorageStrategy

AssetStorageStrategy

AssetStorageStrategy

The AssetPersistenceStrategy determines how Asset files are physically stored and retrieved.

Signature

interface AssetStorageStrategy extends InjectableStrategy {
  writeFileFromBuffer(fileName: string, data: Buffer): Promise<string>;
  writeFileFromStream(fileName: string, data: Stream): Promise<string>;
  readFileToBuffer(identifier: string): Promise<Buffer>;
  readFileToStream(identifier: string): Promise<Stream>;
  deleteFile(identifier: string): Promise<void>;
  fileExists(fileName: string): Promise<boolean>;
  toAbsoluteUrl?(request: Request, identifier: string): string;
}

Extends

Members

writeFileFromBuffer

method
type:
(fileName: string, data: Buffer) => Promise<string>
Writes a buffer to the store and returns a unique identifier for that file such as a file path or a URL.

writeFileFromStream

method
type:
(fileName: string, data: Stream) => Promise<string>
Writes a readable stream to the store and returns a unique identifier for that file such as a file path or a URL.

readFileToBuffer

method
type:
(identifier: string) => Promise<Buffer>
Reads a file based on an identifier which was generated by the a writeFile method, and returns the as a Buffer.

readFileToStream

method
type:
(identifier: string) => Promise<Stream>
Reads a file based on an identifier which was generated by the a writeFile method, and returns the file as a Stream.

deleteFile

method
type:
(identifier: string) => Promise<void>
Deletes a file from the storage.

fileExists

method
type:
(fileName: string) => Promise<boolean>
Check whether a file with the given name already exists. Used to avoid naming conflicts before saving the file.

toAbsoluteUrl

method
type:
(request: Request, identifier: string) => string
Convert an identifier as generated by the writeFile… methods into an absolute url (if it is not already in that form). If no conversion step is needed (i.e. the identifier is already an absolute url) then this method should not be implemented.