Skip to main content

AssetStorageStrategy

AssetStorageStrategy

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

info

This is configured via the assetOptions.assetStorageStrategy property of your VendureConfig.

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;
}

writeFileFromBuffer

method
(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
(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
(identifier: string) => Promise<Buffer>

Reads a file based on an identifier which was generated by the writeFile method, and returns the as a Buffer.

readFileToStream

method
(identifier: string) => Promise<Stream>

Reads a file based on an identifier which was generated by the writeFile method, and returns the file as a Stream.

deleteFile

method
(identifier: string) => Promise<void>

Deletes a file from the storage.

fileExists

method
(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
(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.