CloudinaryImage Field
Warning: the CloudinaryImage Field has been deprecated. Please use the File and a storage adapter going forward. Stores an
Objectin the model.
Displayed as an image upload field in the Admin UI.
Automatically manages images stored in Cloudinary, including uploading, resizing and deleting.
See the Cloudinary configuration documentation for details on how to set up Cloudinary in KeystoneJS.
Example
{ type: Types.CloudinaryImage }
Options
generateFilename function; default: random filename
Method to generate a public_id in Cloudinary for the uploaded file. Gets passed the file data, the attempt number and the callback to call with the filename. Note: Cloudinary supported file extensions will automatically be removed from returned filename.
- See
keystone-storage-namefunctionsfor additional filename generators, including content hash filename and original filename. See its source for more information on how to write your own.
{ type: Types.CloudinaryImage, generateFilename: function(file, attemptNumber, callback) {
var originalname = file.originalname;
var filenameWithoutExtension = originalname.substring(0, originalname.lastIndexOf('.'));
var timestamp = new Date().getTime();
return `${filenameWithoutExtension}-${timestamp}`;
},
}
whenExists string; default: 'overwrite'
Specifies what to do when the file exists already. Can be one of 'retry', 'error' or 'overwrite'.
{ type: Types.CloudinaryImage, whenExists: 'retry' }
retryAttempts number; default: 3
If whenExists is set to 'retry', how many times keystone should try to generate a unique filename before returning an error
{ type: Types.CloudinaryImage, whenExists: 'retry', retryAttempts: 5 }
folder String
Specifies a custom folder/prefix for the Cloudinary image public_id when cloudinary folders is set to true.
{ type: Types.CloudinaryImage, folder: 'path/to/image' }
Note: If you want Cloudinary to automatically create folders when the
cloudinary foldersoption is set totrue, make sure you enable “Auto-create folders” in your Cloudinary account “Upload Settings”.
autoCleanup Boolean
When true, changes Keystone’s default behavior from remove (which only removes the Cloudinary image from the database) to delete (which removes the image from both the database and Cloudinary storage). Additionally, this option replaces an existing image (if one already exists) during upload.
{ type: Types.CloudinaryImage, autoCleanup : true }
select Boolean
When true, a select field is displayed with a list of images currently available in Cloudinary storage. Only images with IDs that begin with the selectPrefix will be displayed when the selectPrefix is specified. Otherwise, images with IDs that begin with the folder will be displayed. If neither selectPrefix nor folder are configured, then only images with IDs that begin with [{prefix}]/{list.path}/{field.path}/ will be displayed.
{ type: Types.CloudinaryImage, select : true }
selectPrefix String specifies the the prefix of the images that will be available for selection when select option is true.
{ type: Types.CloudinaryImage, select: true, selectPrefix: 'path/to/images' }
Schema
public_id String
version Number
signature String
format String
resource_type String
url String
width Number
height Number
secure_url String
Virtuals
exists Boolean - whether there is a stored image
Special paths
{path}_upload
When a file is provided to the updateHandler, it will be uploaded to cloudinary and the details will be stored in the field.
Underscore methods
src(options) String - returns the url of the image, accepts all options cloudinary supports
tag(options) String - returns an <img> tag
scale(width, height, options) String - scales the image to fit the exact width and height, retaining aspect ratio
fit(width, height, options) String - scales the image to fit within the specified width and height, retaining aspect ratio
lfit(width, height, options) String - scales the image to fit within the specified width and height, retaining aspect ratio (without exceeding the original dimensions)
limit(width, height, options) String - scales the image (down only) to fit within the specified width and height, retaining aspect ratio
fill(width, height, options) String - scales the image to fill the specified width and height
crop(width, height, options) String - crops the image to fill the specified width and height
pad(width, height, options) String - pads the image to fill the specified width and height
lpad(width, height, options) String - pads the image to fill the specified width and height (without exceeding the original dimensions)
thumbnail(width, height, options) String - crops the image to fill the specified width and height
In all methods, options is an optional Object. See Cloudinary’s Transformation Documentation for more information on the supported options and transformations.
Note: Remember that if you are uploading images to a
CloudinaryImagefield using an HTML form, you need to specifyenctype="multipart/form-data"in yourformtag.