5252 - VipsForeignLoadPdf
5353
5454iiif :
55- # Optional shared CORS allowlist for IIIF Presentation, Search, Auth, and
56- # Image unless iiif.image.allowed_origins is set. Entries must be exact
55+ # Optional shared CORS allowlist for IIIF Presentation and Image unless
56+ # iiif.image.allowed_origins is set. Entries must be exact
5757 # origins (`https://viewer.example.edu`) or `*`.
5858 # When empty, no Access-Control-Allow-Origin header is emitted.
5959 # allowed_origins:
@@ -77,10 +77,13 @@ iiif:
7777 max_source_pixels : 250000000
7878 # Refuse or stop spooling encoded source files larger than this many bytes
7979 # when the source is not already available as a file path. 0 disables.
80- max_source_bytes : 1073741824
81- # Refuse encoded derivatives larger than this many bytes after libvips
82- # export. 0 disables.
83- max_derivative_bytes : 536870912
80+ max_source_bytes : 1GiB
81+ # Per-request encoded response limit. Refuse one generated derivative if it
82+ # is larger than this many bytes after libvips export. This protects the
83+ # server from returning or caching a single unexpectedly huge response.
84+ # This is not the total cache size; see cache.max_bytes for the aggregate
85+ # filesystem derivative-cache budget. 0 disables.
86+ max_derivative_bytes : 512MiB
8487 # Bound concurrent libvips jobs across image derivatives and info probes.
8588 max_concurrent_transforms : 4
8689 # Advertise additional transform limits in info.json so clients can avoid
9194 # Cantaloupe behavior. `normalize` converts to sRGB/gray. `none` skips
9295 # profile conversion and strips metadata where the output codec supports it.
9396 color_management : preserve
94- # `auto` uses random access for region crops and sequential access for
95- # full/resize requests. You can force sequential or random for profiling.
97+ # How libvips should read source pixels from disk or spooled source files.
98+ # `auto` is the production default: it uses random access for region crops
99+ # and sequential access for full-image or resize requests. Sequential access
100+ # streams forward and can reduce memory and I/O for whole-image reads, but it
101+ # is a poor fit for tile/region workloads that need pixels from arbitrary
102+ # offsets. Random access is better for crops and tiled viewers, but can do
103+ # unnecessary work for simple full-image derivatives. Force `sequential` or
104+ # `random` only when profiling a specific deployment or source format.
96105 load_access : auto
97106 # Cache info.json dimensions by identifier plus source mtime/size.
98107 info_dimension_cache : true
@@ -119,20 +128,9 @@ iiif:
119128 # Bearer token. Prefer injecting this from the environment.
120129 write_enabled : false
121130 # write_token: ${TRIPLET_PRESENTATION_WRITE_TOKEN}
122- search :
123- # IIIF Content Search 2.0 surface. The default backend is a no-op that
124- # returns an empty AnnotationPage; indexing adapters are future work.
125- enabled : false
126- prefix : /search/v2
127- auth :
128- # IIIF Authorization Flow API 2.0 surface. No production authorizer is
129- # built in yet; permit-all must be explicitly enabled for development.
130- enabled : false
131- prefix : /auth/v2
132- development_permit_all : false
133131
134132# Identifier resolution. Exactly one source must be the default; additional
135- # sources are selected by identifier scheme (e.g. `https://…`, `gs://…` ).
133+ # sources are selected by identifier scheme (e.g. `https://…`).
136134sources :
137135 default : file
138136 file :
@@ -148,10 +146,6 @@ sources:
148146 # - prefix: /system/files
149147 # root: /private
150148 # auth_probe: true
151- # auth_anonymous_cache_ttl: 720h
152- # auth_authenticated_cache_ttl: 168h
153- # auth_error_cache_min_age: 5m
154- # auth_cache_max_entries: 4096
155149 # - prefix: /fedora
156150 # root: /fcrepo
157151 # ocfl: true
@@ -161,10 +155,8 @@ sources:
161155 # `auth_probe: true` means Triplet forwards browser Cookie/Authorization
162156 # headers to the original URL and requires 200/206 before reading locally.
163157 # Auth probes are tiered: anonymous is checked first and cached separately;
164- # credentialed probes only run when anonymous access is denied. Long TTLs
165- # are explicit access-staleness windows; defaults are short when omitted.
166- # 403/404 probe results are not cached when Last-Modified is newer than
167- # auth_error_cache_min_age, avoiding permission-publication races.
158+ # credentialed probes only run when anonymous access is denied. Probe
159+ # decisions inherit sources.http.metadata_cache_ttl.
168160 # Optional HTTP(S) source. When configured alongside the file source,
169161 # `http://...` and `https://...` identifiers are routed here automatically.
170162 #
@@ -180,27 +172,32 @@ sources:
180172 # allowed_origins: [https://islandora-stage.lib.lehigh.edu]
181173 # allow_private_hosts: false
182174 # request_timeout: 2m
183- # max_bytes: 52428800
184- # gcs:
185- # bucket_url: gs://my-bucket
186- # prefix: images
175+ # max_bytes: 50MiB
176+ # # Optional in-process metadata cache for remote URL identifiers. This lets
177+ # # derivative cache hits reuse recent ETag/Last-Modified/size metadata
178+ # # instead of making a HEAD or range request to the upstream source every
179+ # # time. During this TTL, Triplet may serve a cached derivative without
180+ # # noticing that the remote source changed or disappeared.
181+ # metadata_cache_ttl: 5m
187182
188183cache :
189- # Derivative cache. Configure either a filesystem root or a blob bucket URL .
184+ # Derivative cache. Configure a filesystem root.
190185 root : /var/lib/triplet/cache
191- # bucket_url: gs://triplet-cache
192- # prefix: derivatives
193- # Best-effort eviction target for the file cache. 0 disables size-based
194- # eviction.
195- max_bytes : 1073741824
196- # Optional source cache for fetched source bytes (primarily HTTP
197- # identifiers). Configure either a filesystem root or a blob bucket URL.
186+ # Best-effort aggregate size target for all cached derivative payload files
187+ # under cache.root. This controls retained cache footprint over time, not the
188+ # size of any single generated response. A write may temporarily exceed this
189+ # target before eviction runs, and metadata sidecar files are not counted.
190+ # 0 disables size-based eviction.
191+ max_bytes : 500GiB
192+ # Optional age limit for derivative entries. Expired entries are removed on
193+ # read and opportunistically during writes. 0 disables age-based eviction.
194+ max_age : 720h
195+ # Optional filesystem source cache for fetched source bytes (primarily HTTP
196+ # identifiers).
198197 # source_root: /var/lib/triplet/source-cache
199- # source_bucket_url: gs://triplet-source-cache
200- # source_prefix: sources
201198 # Best-effort eviction target for the source cache. 0 disables size-based
202199 # eviction.
203- source_max_bytes : 1073741824
200+ source_max_bytes : 1GiB
204201 # When non-zero, stale source-cache hits are served immediately while a
205202 # background refresh fetches a fresh copy for later requests.
206203 source_stale_after : 24h
@@ -210,7 +207,7 @@ extensions:
210207 # → encoded derivative. Same pipeline as the spec routes.
211208 transform :
212209 enabled : true
213- max_upload_bytes : 52428800 # 50 MiB
210+ max_upload_bytes : 50MiB
214211 # Non-spec endpoint: POST bytes → mints an opaque identifier resolvable
215212 # via the standard /iiif/3/{id}/... routes.
216213 uploads :
0 commit comments