inst/doc/v05-upload-data.R

## -----------------------------------------------------------------------------
library(dataone)
library(datapack)
library(uuid)

dp <- new("DataPackage")

emlFile <- system.file("extdata/strix-pacific-northwest.xml", package="dataone")
metadataObj <- new("DataObject", format="eml://ecoinformatics.org/eml-2.1.1", filename=emlFile)
dp <- addMember(dp, metadataObj)

sourceData <- system.file("extdata/OwlNightj.csv", package="dataone")
sourceObj <- new("DataObject", format="text/csv", filename=sourceData) 
dp <- addMember(dp, sourceObj, metadataObj)

progFile <- system.file("extdata/filterObs.R", package="dataone")
progObj <- new("DataObject", format="application/R", filename=progFile, mediaType="text/x-rsrc")
dp <- addMember(dp, progObj, metadataObj)

outputData <- system.file("extdata/Strix-occidentalis-obs.csv", package="dataone")
outputObj <- new("DataObject", format="text/csv", filename=outputData) 
dp <- addMember(dp, outputObj, metadataObj)

myAccessRules <- data.frame(subject="https://orcid.org/0000-0002-2192-403X", permission="changePermission") 


## ---- eval=FALSE--------------------------------------------------------------
#  d1c <- D1Client("STAGING", "urn:node:mnStageUCSB2")
#  packageId <- uploadDataPackage(d1c, dp, public=TRUE, accessRules=myAccessRules, quiet=FALSE)

## -----------------------------------------------------------------------------
library(dataone)
library(datapack)
library(uuid)

dp <- new("DataPackage")

## -----------------------------------------------------------------------------
emlFile <- system.file("extdata/strix-pacific-northwest.xml", package="dataone")
metadataObj <- new("DataObject", format="eml://ecoinformatics.org/eml-2.1.1", filename=emlFile)

## -----------------------------------------------------------------------------
dp <- addMember(dp, metadataObj)

## ---- eval=FALSE--------------------------------------------------------------
#  dp <- addMember(dp, sourceObj, metadataObj)

## ---- eval=FALSE--------------------------------------------------------------
#  dp <- addMember(dp, metadataObj)
#  dp <- addMember(dp, sourceObj)
#  dp <- insertRelationship(dp, getIdentifier(metadataObj), getIdentifier(sourceObj))

## -----------------------------------------------------------------------------
sourceData <- system.file("extdata/OwlNightj.csv", package="dataone")
sourceObj <- new("DataObject", format="text/csv", filename=sourceData) 
dp <- addMember(dp, sourceObj, metadataObj)

## -----------------------------------------------------------------------------
progFile <- system.file("extdata/filterObs.R", package="dataone")
progObj <- new("DataObject", format="application/R", filename=progFile, mediaType="text/x-rsrc")
dp <- addMember(dp, progObj, mo=metadataObj)

outputData <- system.file("extdata/Strix-occidentalis-obs.csv", package="dataone")
outputObj <- new("DataObject", format="text/csv", filename=outputData) 
dp <- addMember(dp, outputObj, mo=metadataObj)

## -----------------------------------------------------------------------------
sourceObj <- setPublicAccess(sourceObj)

## -----------------------------------------------------------------------------
myAccessRules <- data.frame(subject="https://orcid.org/0000-0002-2192-403X", permission="changePermission") 
sourceObj <- addAccessRule(sourceObj, myAccessRules)

## ---- eval=FALSE--------------------------------------------------------------
#  d1c <- D1Client("STAGING", "urn:node:mnStageUCSB2")
#  packageId <- uploadDataPackage(d1c, dp, public=TRUE, accessRules=myAccessRules, quiet=FALSE)
#  message(sprintf("Uploaded package with identifier: %s", packageId))

## ---- eval=FALSE--------------------------------------------------------------
#  cn <- CNode("STAGING")
#  mn <- getMNode(cn, "urn:node:mnStageUCSB2")
#  doi <- generateIdentifier(mn, "DOI")
#  metadataObj <- new("DataObject", id=doi, format="eml://ecoinformatics.org/eml-2.1.1", file=sampleEML)

## ---- eval=FALSE--------------------------------------------------------------
#  dataObj <- getDataObject(d1c, id="urn:uuid:1234", lazyLoad=T, limit="1TB")
#  dp <- addMember(dp, dataObj, mo=metadatqObj)

## -----------------------------------------------------------------------------
library(digest)
# Create a system metadata object for a data file. 
# Just for demonstration purposes, create a temporary data file.
testdf <- data.frame(x=1:20,y=11:30)
csvfile <- paste(tempfile(), ".csv", sep="")
write.csv(testdf, csvfile, row.names=FALSE)
format <- "text/csv"
size <- file.info(csvfile)$size
sha256 <- digest(csvfile, algo="sha256", serialize=FALSE, file=TRUE)
# Generate a unique identifier for the dataset
pid <- sprintf("urn:uuid:%s", UUIDgenerate())
sysmeta <- new("SystemMetadata", identifier=pid, formatId=format, size=size, checksum=sha256)
sysmeta <- addAccessRule(sysmeta, "public", "read")

## -----------------------------------------------------------------------------
# Create a system metadata object for a data file. 
# Just for demonstration purposes, create a temporary data file.
testdf <- data.frame(x=1:20,y=11:30)
csvfile <- paste(tempfile(), ".csv", sep="")
write.csv(testdf, csvfile, row.names=FALSE)
format <- "text/csv"
size <- file.info(csvfile)$size
sha256 <- digest(csvfile, algo="sha256", serialize=FALSE, file=TRUE)
# Generate a unique identifier for the dataset
pid <- sprintf("urn:uuid:%s", UUIDgenerate())
# The seriesId can be any unique character string.
seriesId <- sprintf("urn:uuid:%s", UUIDgenerate())
sysmeta <- new("SystemMetadata", identifier=pid, formatId=format, size=size, checksum=sha256,  seriesId=seriesId)

## ----eval=F-------------------------------------------------------------------
#  cn <- CNode("STAGING")
#  mn <- getMNode(cn, "urn:node:mnStageUCSB2")
#  response <- createObject(mn, pid, csvfile, sysmeta)

## ---- eval=F------------------------------------------------------------------
#  cn <- CNode("STAGING")
#  mn <- getMNode(cn, "urn:node:mnStageUCSB2")
#  sysmeta <- getSystemMetadata(mn, pid)
#  sysmeta <- addAccessRule(sysmeta, "public", "read")
#  status <- updateSystemMetadata(mn, pid, sysmeta)

## ---- eval=F------------------------------------------------------------------
#  # Update object from previous example with a new version
#  updateid <- sprintf("urn:uuid:%s", UUIDgenerate())
#  testdf <- data.frame(x=1:20,y=11:30)
#  csvfile <- paste(tempfile(), ".csv", sep="")
#  write.csv(testdf, csvfile, row.names=FALSE)
#  size <- file.info(csvfile)$size
#  sha256 <- digest(csvfile, algo="sha256", serialize=FALSE, file=TRUE)
#  # Start with the old object's sysmeta, then modify it to match
#  # the new object. We could have also created a sysmeta from scratch.
#  sysmeta <- getSystemMetadata(mn, pid)
#  sysmeta@identifier <- updateid
#  sysmeta@size <- size
#  sysmeta@checksum <- sha256
#  sysmeta@obsoletes <- pid
#  # Now update the object on the member node.
#  response <- updateObject(mn, pid, csvfile, updateid, sysmeta)
#  # Get the new, updated sysmeta and check it to ensure that the update
#  # worked, i.e. "obsoletes" is the old pid that was replaced by the update.
#  updsysmeta <- getSystemMetadata(mn, updateid)
#  updsysmeta@obsoletes

## ---- eval=FALSE--------------------------------------------------------------
#  response <- archive(mn, updateid)

## ---- eval=FALSE--------------------------------------------------------------
#  sysmeta <- getSystemMetadata(mn, updateid)
#  sysmeta@archived

Try the dataone package in your browser

Any scripts or data that you put into this service are public.

dataone documentation built on June 11, 2022, 1:06 a.m.