Skip to content

VIP File System

On the VIP Platform, media files that are uploaded to a WordPress site are not stored in a filesystem that is local to the web container. Instead, an API is used to store the uploaded files in a separate read-only service called the VIP File System. The VIP File System is an external, globally distributed object store.

All of the contents of a WordPress site’s /wp-content/uploads/ directory are mapped to the VIP File System. This design provides better security, allows VIP’s CDN to more easily scale access to a site’s media, and enables the WordPress application to automatically horizontally scale more efficiently across multiple hosts.

The VIP File System provides high performance access to media files associated with a WordPress site. When browsers request these files, they are served through a dedicated system using the same domain as the site, with a long time to live (TTL). Some third-party performance scans may not recognize VIP’s CDN due to content being served from the same domain as the site hosted on VIP.

  • All common operations, including uploads, cropping, editing, and deleting, work as expected through the WordPress Admin dashboard.
  • The File System provides dynamic image resizing and image transformation.
  • Separate files are not created for intermediate images. Instead, the intermediate size of an image is dynamically generated at the time of a request.
  • Media files can be imported to the File System with VIP-CLI, and a site’s or environment’s media files can be exported from the VIP Dashboard.
  • An individual file that is imported (or uploaded) to the VIP File System is limited to the maximum size of 1 GB. For specific use cases it is possible to increase this size limit to 2 GB by creating a VIP Support request.
  • Media files uploaded or imported to a WordPress production environment are automatically shared with the associated non-production environments. When a data sync from a production environment to a non-production environment is completed, the target environment loads the shared media files automatically.
  • By default, files on the VIP File System are cached by NGINX with a Cache-Control HTTP header set to cache-control: max-age=31536000 (1 year). This cannot be modified.
  • Cached content for media files can be purged by resource URL in the VIP Dashboard or with the VIP-CLI command vip cache purge-url.
  • Requests that include zero, one, or two path prefixes before /wp-content/uploads/ are sent to the VIP File System e.g. /articles/wp-content/uploads/... and /legacy/articles/wp-content/uploads/... show the same content as the equivalent path as /wp-content/uploads/....
  • By default, a 404 will be returned by NGINX for requests for URIs that match the regex \.(css|js|jp(e)?g|gif|png|swf|ico)$ and do not exist within the VIP File System path (i.e. /wp-content/uploads/). It is possible to request VIP Support to disable this default behavior, and instead allow the request to fall back to application code. Custom PHP logic can be added to application code to capture and rewrite the request (301 moved permanently) to another path that does exist. This alternative method can be useful capturing non-compatible paths for images post-migration, for instance.

Last updated: April 02, 2024

Relevant to

  • WordPress