summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plumber.R24
1 files changed, 24 insertions, 0 deletions
diff --git a/plumber.R b/plumber.R
index 0f091c8..099661c 100644
--- a/plumber.R
+++ b/plumber.R
@@ -68,3 +68,27 @@ robust.system <- function (cmd) {
unlink(c(stdoutFile, stderrFile))
return(retval)
}
+
+
+#* @post /upload
+upload <- function(req, res){
+ cat("---- New Request ----\n")
+ # the path where you want to write the uploaded files
+ file_path <- "/data/home/r_on_cloud/R_on_Cloud_Web_API/"
+ # strip the filename out of the postBody
+ file_name <- gsub('\"', "", substr(req$postBody[2], 55, 1000))
+ # need the length of the postBody so we know how much to write out
+ file_length <- length(req$postBody)-1
+ # first five lines of the post body contain metadata so are ignored
+ file_content <- req$postBody[5:file_length]
+ # build the path of the file to write
+ file_to_write <- paste0(file_path, file_name)
+ # write file out with no other checks at this time
+ write(file_content, file = file_to_write)
+ # print logging info to console
+ cat("File", file_to_write, "uploaded\n")
+ # return file path &name to user
+ ro <- file_to_write
+ r<- list(status = "SUCCESS", code = "200", output = ro)
+ return (r)
+}