Skip to Page NavigationSkip to Page NavigationSkip to Content

File

A file field represents a file of any type.

See the Images and Files guide for details on how to configure storage for the file field type.

import { config, list } from '@keystone-6/core';
import { file } from '@keystone-6/core/fields';
import fs from 'node:fs/promises';
export default config({
lists: {
SomeListName: list({
fields: {
repo: file({
storage: {
async put(key, stream) {
await fs.writeFile(`public/files/${key}`, stream)
},
async delete(key) {
await fs.unlink(`public/files/${key}`)
},
url(key) {
return `http://localhost:3000/files/${key}`
},
},
}),
/* ... */
},
}),
/* ... */
},
/* ... */
});

Options:

  • storage(required): An object that defines how to upload (put), delete (delete) and get a URL to the file (url).

On this page