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

LocationUsed ForAccess
cacheminified JS and CSS, images referenced by minified CSSWrite once, served immediately, files are never changed, needs to be served quickly
imagesimage formtoolWrite once or twice (when resizing), read several times as source for different sizes, needs to be served quickly
privatefilesfile 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
publicfilesfile formtool (unsecured and approved content)Moved in and out as content is published and unpublished
archivecontent archives (history)Write once, rarely read, doesn't need to be served at all

Introduced in Farcry 7.0 Shiny:

LocationUsed ForAccess
temptemporary location for bulk uploadsWrite once, then transfered out at a later point
dropdrop location for automatic bulk importsWrite 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.

 

Additional CDN Documentation