CloudFront Object Structure
Archived documentation
You are reading the frozen documentation for v0.8.7, which is no longer maintained. Go to the latest docs.
The cloudfront object configures CloudFront delivery for files stored in S3. It is required when fileStrategy or any fileStrategies entry uses "cloudfront".
Example
fileStrategies:
avatar: 'cloudfront'
image: 'cloudfront'
document: 's3'
cloudfront:
domain: 'https://cdn.example.com'
distributionId: 'E1234ABCD'
invalidateOnDelete: false
imageSigning: 'cookies'
cookieDomain: '.example.com'
cookieExpiry: 1800
urlExpiry: 3600
storageRegion: 'us-east-2'
includeRegionInPath: false
requireSignedAccess: trueFields
| Key | Type | Description | Example |
|---|---|---|---|
| domain | String | CloudFront distribution domain or CNAME. Required. | domain: "https://cdn.example.com" |
| distributionId | String | CloudFront distribution ID. Required when `invalidateOnDelete` is true. | distributionId: "E1234ABCD" |
| invalidateOnDelete | Boolean | Creates a CloudFront invalidation after deleting the S3 object. Default: false. | invalidateOnDelete: false |
| imageSigning | String | Inline media signing mode. Options: `"none"`, `"cookies"`, `"url"`. `"url"` is reserved and not implemented for images. | imageSigning: "cookies" |
| urlExpiry | Number | Signed CloudFront download URL lifetime in seconds. Default: 3600. | urlExpiry: 3600 |
| cookieExpiry | Number | Signed cookie lifetime in seconds. Default: 1800. Maximum: 604800. | cookieExpiry: 1800 |
| cookieDomain | String | Shared parent domain for signed cookies. Required when `imageSigning` is `"cookies"`. Must start with a dot. | cookieDomain: ".example.com" |
| storageRegion | String | Optional region label used in generated object keys when `includeRegionInPath` is true. | storageRegion: "us-east-2" |
| includeRegionInPath | Boolean | Includes the storage region in newly generated object keys. Default: false. | includeRegionInPath: false |
| requireSignedAccess | Boolean | Requires signed-cookie CloudFront access to initialize successfully at startup. Default: false. | requireSignedAccess: true |
Validation Rules
distributionIdis required wheninvalidateOnDeleteistrue.cookieDomainis required whenimageSigningis"cookies".cookieDomainmust start with a dot, for example.example.com.requireSignedAccess: truerequiresimageSigning: "cookies".
Related Environment Variables
| Key | Type | Description | Example |
|---|---|---|---|
| CLOUDFRONT_KEY_PAIR_ID | String | CloudFront public key pair ID. Required for signed cookies and signed downloads. | # CLOUDFRONT_KEY_PAIR_ID=K1234567890ABC |
| CLOUDFRONT_PRIVATE_KEY | String | CloudFront private key PEM. Required for signed cookies and signed downloads. | # CLOUDFRONT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----" |
For deployment guidance, see CloudFront with S3.