AssetStorageStrategy
AssetStorageStrategy
The AssetPersistenceStrategy determines how Asset files are physically stored and retrieved.
This is configured via the assetOptions.assetStorageStrategy
property of
your VendureConfig.
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:
InjectableStrategy
writeFileFromBuffer
(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
(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
(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
(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
(identifier: string) => Promise<void>
Deletes a file from the storage.
fileExists
(fileName: string) => Promise<boolean>
Check whether a file with the given name already exists. Used to avoid naming conflicts before saving the file.
toAbsoluteUrl
(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.