A convenience method to download a data object and its associated SystemMetadata, wrapped in a DataObject class.
getDataObject(x, identifier, ...)# S4 method for D1Client
getDataObject(
x,
identifier,
lazyLoad = FALSE,
limit = "1MB",
quiet = TRUE,
checksumAlgorithm = as.character(NA)
)
A D1Client object.
The identifier of the object to get.
(not yet used)
A logical
value. If TRUE, then only package member system metadata is downloaded and not data.
A character
value specifying maximum package member size to download. Specified with "KB", "MB" or "TB"
for example: "100KB", "10MB", "20GB", "1TB". The default is "1MB". Only takes effect if 'lazyLoad=FALSE'.
A 'logical'
. If TRUE (the default) then informational messages will not be printed.
A character
value specifying the algorithm to use to re-calculate (after download) the system metadata checksum
for the object's data bytes for example: "SHA-256". The default is "NA", which specifies that this
re-calculation will not be performed.
A DataObject or NULL if the object was not found in DataONE
This method performs multiple underlying calls to the DataONE repository network.
CN.resolve() is called to locate the object on one or more repositories, and then each of these
is accessed until the associated SystemMetadata and data bytes are successfully downloaded. This
data is then used to construct the returned DataObject. This function replaces the previous
getD1Object() method in the version 1
dataone library.
The lazyLoad
parameter controls whether the data byes for a DataONE item are downloaded (the system
metadata is always downloaded). When lazyLoad
=FALSE,the limit
parameter can be used to specify
the maximum size of a data file that will be downloaded. If lazyLoad
is TRUE, then limit
is ignored. The lazyLoad
and limit
can be used together in the following ways:
'lazyLoad' | 'limit' | result | comments | |
---------- | ------- | ------ | --------------------- | |
TRUE | Any value | Data bytes are not downloaded | The 'limit' parameter is ignored | |
FALSE | Not specified | Data bytes are download if less than 1MB | The default 'limit' of 1MB is used | |
FALSE | 10MB | Data bytes are downloaded if less than 10MB | The specified 'limit' values is used |
Note that DataONE system metadata is always downloaded and populated into the resulting DataObject, regardless of the 'lazyLoad' and 'limit' values specified in the call to 'getDataObject()'.
D1Client
class description.
# NOT RUN {
library(dataone)
d1c <- D1Client("PROD", "urn:node:KNB")
pid <- "solson.5.1"
obj <- getDataObject(d1c, pid)
data <- getData(obj)
# }
Run the code above in your browser using DataLab