Delivers resized assets (images) in response to HTTP requests. It contains two parts:
- Delivery server
- Resizing routine
The delivery server attempts to find an existing resized file from a storage location. If the resized file is found it returns the resized file. Otherwise, it will deliver the original file and send an instruction to create a resized version of said file.
Each request needs to have the following as URL parameters:
- width
- location
- encoding (e.g., webp, jpeg, png)
For example, if you want a version of https://host/path with width=100 and encoding=webp, the resulting request would be
https://[host]?width=100&url=https://host/path&encoding=webp
- BUCKET: GCP Storage bucket name
- HOST: GCP Storage host (optional). You can fill this in if an emulator is being used.
- ADDRESS: Address to bind to. Defaults to: 0.0.0.0:80
- credentials: The location of the Google JWT file.
- allowedHosts: A comma separated list of domain hosts. This is used to filter requests by the host in the "urL" query param (above). Only "url"s that contain one of the provided hosts will be resized. An empty value allows any.
- project-id: Google Project ID (for logging & pubsub)
- Externalize the PubSub topic in an environment variable
Resizing is done through GcfResize
function which is meant to be run as a Google Cloud Function.
- PROJECTID: Google Project ID (used for logging)
- BUCKET: GCP Storage bucket name