Target resources for custom storage formats
Source:R/tar_resources_repository_cas.R
tar_resources_repository_cas.Rd
Create the repository_cas
argument of tar_resources()
to specify optional target settings for custom storage formats.
Usage
tar_resources_repository_cas(
envvars = targets::tar_option_get("resources")$repository_cas$envvars
)
Arguments
- envvars
Named character vector of environment variables. These environment variables are temporarily set just before each call to the storage methods you define in
tar_format()
. Specific methods likeread
can retrieve values from these environment variables usingSys.getenv()
. Setenvvars
toNULL
to omit entirely.
Value
Object of class "tar_resources_repository_cas"
, to be supplied
to the repository_cas
argument of tar_resources()
.
Details
tar_resources_repository_cas()
accepts
target-specific settings to customize tar_repository_cas()
storage
repositories.
Resources
Functions tar_target()
and tar_option_set()
each takes an optional resources
argument to supply
non-default settings of various optional backends for data storage
and high-performance computing. The tar_resources()
function
is a helper to supply those settings in the correct manner.
In targets
version 0.12.2 and above, resources are inherited one-by-one
in nested fashion from tar_option_get("resources")
.
For example, suppose you set
tar_option_set(resources = tar_resources(aws = my_aws))
,
where my_aws
equals tar_resources_aws(bucket = "x", prefix = "y")
.
Then, tar_target(data, get_data()
will have bucket "x"
and
prefix "y"
. In addition, if new_resources
equals
tar_resources(aws = tar_resources_aws(bucket = "z")))
, then
tar_target(data, get_data(), resources = new_resources)
will use the new bucket "z"
, but it will still use the prefix "y"
supplied through tar_option_set()
. (In targets
0.12.1 and below,
options like prefix
do not carry over from tar_option_set()
if you
supply non-default resources to tar_target()
.)
See also
Other resources:
tar_resources()
,
tar_resources_aws()
,
tar_resources_clustermq()
,
tar_resources_crew()
,
tar_resources_custom_format()
,
tar_resources_feather()
,
tar_resources_fst()
,
tar_resources_future()
,
tar_resources_gcp()
,
tar_resources_network()
,
tar_resources_parquet()
,
tar_resources_qs()
,
tar_resources_url()
Examples
# Somewhere in you target script file (usually _targets.R):
tar_target(
name = target_name,
command = data.frame(x = 1),
repository = tar_repository_cas(
upload = function(key, path) {
if (dir.exists(path)) {
stop("This CAS repository does not support directory outputs.")
}
if (!file.exists("cas")) {
dir.create("cas", recursive = TRUE)
}
file.copy(path, file.path("cas", key))
},
download = function(key, path) {
file.copy(file.path("cas", key), path)
},
exists = function(key) {
file.exists(file.path("cas", key))
}
),
resources = tar_resources(
repository_cas = tar_resources_repository_cas(
envvars = c(AUTHENTICATION_CREDENTIALS = "...")
)
)
)
#> <tar_stem>
#> name: target_name
#> description:
#> command:
#> data.frame(x = 1)
#> format: rds
#> repository: repository_cas&upload=ZnVuY3Rpb24gKGtleSwgcGF0aCkgCnsKICAgIGlmIChkaXIuZXhpc3RzKHBhdGgpKSB7CiAgICAgICAgc3RvcCgiVGhpcyBDQVMgcmVwb3NpdG9yeSBkb2VzIG5vdCBzdXBwb3J0IGRpcmVjdG9yeSBvdXRwdXRzLiIpCiAgICB9CiAgICBpZiAoIWZpbGUuZXhpc3RzKCJjYXMiKSkgewogICAgICAgIGRpci5jcmVhdGUoImNhcyIsIHJlY3Vyc2l2ZSA9IFRSVUUpCiAgICB9CiAgICBmaWxlLmNvcHkocGF0aCwgZmlsZS5wYXRoKCJjYXMiLCBrZXkpKQp9&download=ZnVuY3Rpb24gKGtleSwgcGF0aCkgCnsKICAgIGZpbGUuY29weShmaWxlLnBhdGgoImNhcyIsIGtleSksIHBhdGgpCn0&exists=ZnVuY3Rpb24gKGtleSkgCnsKICAgIGZpbGUuZXhpc3RzKGZpbGUucGF0aCgiY2FzIiwga2V5KSkKfQ&consistent=RkFMU0U
#> iteration method: vector
#> error mode: stop
#> memory mode: persistent
#> storage mode: main
#> retrieval mode: main
#> deployment mode: worker
#> priority: 0
#> resources:
#> repository_cas: <environment>
#> cue:
#> mode: thorough
#> command: TRUE
#> depend: TRUE
#> format: TRUE
#> repository: TRUE
#> iteration: TRUE
#> file: TRUE
#> seed: TRUE
#> packages:
#> targets
#> stats
#> graphics
#> grDevices
#> utils
#> datasets
#> methods
#> base
#> library:
#> NULL