Media

Upload files and link them to resources

Northwind comes with images: a photo per employee, an icon per category. Uploaded files are stored content-addressed — the file's URL is derived from the SHA-1 hash of its content, under ${base}uploads/. The same bytes always land at the same URL, which is what makes file references stable enough to bake into import mappings.

In the browser

Upload a file with the file upload form as shown in the Upload file guide.

From the command line

add-file.sh \
    -b "$base" \
    -f "$cert_pem_file" \
    -p "$cert_password" \
    --title "Nancy Davolio" \
    --file "$PWD/employees/nancy.jpg" \
    --content-type "image/jpeg" \
    "$base"

Linking files to resources

A file becomes part of the graph the moment something points at it. The category mapping from the Data stage does exactly that — the CSV carries each image's hash, and the mapping mints the upload URL from it:

?category foaf:depiction ?picture .
...
BIND(uri(concat(str($base), "uploads/", encode_for_uri(?pictureHash))) AS ?picture)

What you now see

Category and employee documents now render with their images — foaf:depiction is picked up by the default layout, no template work required.

Next: Insight