Working With CDNs
This functionality was introduced in FarCry 6.3.0.
Content Delivery Network (CDN)
A content delivery network or content distribution network (CDN) is a large distributed system of servers deployed in multiple data centers across the Internet. The goal of a CDN is to serve content to end-users with high availability and high performance. CDNs serve a large fraction of the Internet content today, including web objects (text, graphics, URLs and scripts), downloadable objects (media files, software, documents), applications (e-commerce, portals), live streaming media, on-demand streaming media, and social networks. https://en.wikipedia.org/wiki/Content_delivery_network
Overview
CDN functionality provides the ability to store and serve content managed files (e.g. CSS, images, etc) from somewhere other than the application server itself.Supported Use Cases
The following use cases are supported:
- using local file system, S3, and FTP storage interchangeably
- configuring the 4 broad "types" of FarCry files separately (cache, images, secure files, public files)
- migrating files from an existing location to a new location
FarCry CDN sub-system introduces the idea of a "location", which is a discrete configuration that is later referred to by name. FarCry core uses five locations (cache, images, privatefiles, publicfiles, archive), and you should consider their access characteristics when you're looking at moving to a CDN - you may decide that some of these locations shouldn't be on a CDN because of security, serving responsiveness or file access speed.
Media Storage Locations
Location | Used For | Access |
---|---|---|
cache | minified JS and CSS, images referenced by minified CSS | Write once, served immediately, files are never changed, needs to be served quickly |
images | image formtool | Write once or twice (when resizing), read several times as source for different sizes, needs to be served quickly |
privatefiles | file formtool (secured and draft content) | Moved in and out as content is published and unpublished, needs to be able to be served in a controlled fashion |
publicfiles | file formtool (unsecured and approved content) | Moved in and out as content is published and unpublished |
archive | content archives (history) | Write once, rarely read, doesn't need to be served at all |
Introduced in Farcry 7.0 Shiny:
Location | Used For | Access |
---|---|---|
temp | temporary location for bulk uploads | Write once, then transfered out at a later point |
drop | drop location for automatic bulk imports | Write once (usually by a user), then transfered out at a later point |
To change FarCry's default behaviour you would override one (or all) of these in /projects/yourproject/config/_serverSpecificVarsAfterInit.cfm.
- Accessing CDNs in Your Own Code — There are situations where you will want to access the CDN storage points yourself for custom functionality.
- CDN Types — FarCry Core supports a number of different CDN types by default.
- Migrating an Existing Application to a CDN — Moving your application from "local file" storage to CDN based file storage for content managed images and files.
- Writing a Custom CDN Type — Add a CDN type to your project by adding a component to your project under /projects/yourproject/packages/cdn/.