Requested content can be found at mutiple locations: cached to disk, or available at one or more URLs. This function provides a mechanism to always return a single, local path to the content requested, (provided the content identifier can be found in at least one of the registries).

  registries = default_registries(),
  verify = TRUE,
  store = FALSE,
  dir = content_dir(),



A content identifier, see content_id


list of registries at which to register the URL


logical, default TRUE. Should we verify that content matches the requested hash?


logical, should we add remotely downloaded copy to the local store?


path to the local store directory. Defaults to first local registry given to the registries argument.


additional arguments


Local storage is checked first as it will allow us to bypass downloading content when a local copy is available. If no local copy is found but one or more remote URLs are registered for the hash, downloads from these will be attempted in order from most recent first.

See also

query query_local query_remote


if (FALSE) { # interactive() ## Real users won't use a temporary dir Sys.setenv("CONTENTID_REGISTRIES" = tempdir()) # ensure some content in local storage for testing purposes: vostok_co2 <- system.file("extdata", "vostok.icecore.co2", package = "contentid") store(vostok_co2) # \donttest{ resolve(paste0( "hash://sha256/9412325831dab22aeebdd6", "74b6eb53ba6b7bdd04bb99a4dbb21ddff646287e37") ) # } ## Real users won't use a temporary dir Sys.unsetenv("CONTENTID_REGISTRIES") }