Skip to contents

Stops unless every pointer URL names a catalogued store object, and - when a bucket listing of the release's own prefix is given - nothing bulk (.tif, .tiff, .pmtiles) lives under {ver}/. A pointer at a VM host (the file-host PMTiles mirror included) or at a versioned path ({ver}/native/...) fails the first check (url_audit() class store AND asset_key_from_url() not NA); a key the catalog does not list fails the second: an object must be uploaded and catalogued before any pointer names it.

Usage

store_publish_gate(urls, catalog, ver, listed = NULL, legacy_ok = FALSE)

Arguments

urls

pointer URLs (native_asset$asset_url; NA ignored)

catalog

the store catalog (asset_catalog_read()), already holding this run's objects

ver

release id (^v[0-9]+[a-z]?$)

listed

object keys under the atlas root (a recursive listing of {ver}/, with or without the marine-atlas/ prefix), or NULL to skip the prefix check

legacy_ok

warn instead of stopping on bulk files under {ver}/

Value

invisibly, list(n_urls, n_keys, legacy) where legacy are the bulk keys found under {ver}/

Details

Until the M6 prune, releases v8 and v9 still carry their pre-store copies under {ver}/native/; legacy_ok = TRUE turns that third check into a warning and returns the offending keys, so a publisher can run before the prune while still refusing to ADD to them.