1. Abstract
Displaying images stored in Google Cloud Storage (GCS) inside Board is straightforward - as long as the URL is constructed dynamically through Board algorithms and secured with a valid signed URL.
As Solution Architects, our objective is to provide a clean, modern pattern where Board remains lightweight while external cloud storage handles all media assets securely.
2. Content
Each GCS image is accessed through a signed URL, following this structure:
https://storage.googleapis.com/$DIRECTORY_PATH/$FILE?x-goog-signature=...
&x-goog-algorithm=GOOG4-RSA-SHA256
&x-goog-credential=...
&x-goog-date=YYYYMMDDTHHMMSSZ
&x-goog-expires=3600
&x-goog-signedheaders=host
Example:
https://storage.googleapis.com/gcs-images/IMAGES/AOP60_BLANC_NEIG_MAX.image1.png ?x-goog-signature=61e5a4fc79ce5b... &x-goog-algorithm=GOOG4-RSA-SHA256 &x-goog-credential=sa-board@appspot .gserviceaccount.com/20251209/europe-west1/storage/goog4_request&x-goog-date=20251209T112523Z&x-goog-expires=3600 &x-goog-signedheaders=host
Note that Board supports only HTTP or HTTPS URLs for image rendering.
2.1 How to build in Board
Define each segment of the URL in separate text cubes, such as:
- $Storage_Account = "https://storage.googleapis.com/"
- $Directory_Path = "gcs-images/IMAGES/"
- $File = "AOP60_BLANC_NEIG_MAX.image1.png"
- $Signature = "?x-goog-signature=..."
- $Algorithm = "&x-goog-algorithm=GOOG4-RSA-SHA256"
- $Credential = "&x-goog-credential=..."
- $Date = "&x-goog-date=20251209T112523Z"
- $Expires = "&x-goog-expires=3600"
- $SignedHeaders = "&x-goog-signedheaders=host"
Then create a Picture Algorithm to assemble everything:
$Storage_Account &$Directory_Path &$File &$Signature &$Algorithm &$Credential &$Date &$Expires &$SignedHeaders
This dynamic URL becomes your Image Source inside a Label, Card, or any component supporting external images.
Layout Configuration in Board
In the Label (or Card) properties:
- Set Picture Source = your URL algorithm
- Ensure the component is configured to display images via external URLs
- Refresh the screen - and your GCS image renders instantly
Signed URLs expire, so simply updating the URL values (e.g., via CSV → Data Reader) keeps visuals active without changing layouts.
3. Conclusion
This approach delivers:
- secure, externalized image management
- zero storage overhead in Board
- fully dynamic rendering driven by cloud-generated signed URLs
A clean, future-proof integration pattern that aligns perfectly with modern cloud architectures.